您现在的位置: 晨光科技 >> 文章 >> 技术理论 >> IT >> 正文  
  R中的管道符-magrittr           
R中的管道符-magrittr
[ 作者:advancer    转贴自:https://zhuanlan.zhihu.com/p/59770889    点击数:34    更新时间:2024/2/20    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]

R中的管道符-magrittr
sdjsdjsdj
sdjsdjsdj
一个没什么前途(钱途)的穷学生,咨询请值乎勿私信
​关注他
45 人赞同了该文章
我一直不舍得完全从R转到python有很多原因,但是其中最舍不得的两个就是ggplot2和magritter,完全使我的R语言代码变得高效而且简介,今天就来详细介绍一下R中的pipe operator的包-magrittr

关于magrittr的包描述是这样的:A Forward-Pipe Operator for R


安装:
# 直接从tidyverse中使用:
install.packages("tidyverse")

# 或者直接安装:
install.packages("magrittr")

# 从GitHub下载开发版本:
# install.packages("devtools")
devtools::install_github("tidyverse/magrittr")
使用方法:
1.基本用法

x %>% f 等价于 f(x)
x %>% f(y) 等价于 f(x, y)
x %>% f %>% g %>% h  等价于 h(g(f(x)))
----------------------------------
x %>% f(y, .) 等价于 f(y, x)
x %>% f(y, z = .) 等价于 f(y, z = x)
如果数据作为函数的第一个参数的话,是不需要placeholder的,但是如果是第二或者更后面的参数,就需要使用 . 作为占位符。

2.构建函数

f <- . %>% cos %>% sin
等价为
f <- function(.) sin(cos(.))
3.%>%, %$%和%<>%的用法

%>%是最常用的一种前向管道符。

%<>%是表示将变量传入函数,得到的结果返回给原来的变量

iris %<>% na.omit() 等价于 iris<-na.omit(iris)
%$%是使用变量的name来表示该变量下name的数值

df<-data.frame("a"=c(1,2,3), "b"=c(4,5,6))

cor(df$a, df$b) 等价于 df %$% cor(a,b)
4.其余函数的解释:

extract               `[`                   iris['Sepal.Length'] 等价于raise_to_powerly_byextract("SepSepal.等价于等价于LengthSepal.LengthSepal.Lengthal.Length")
extract2               `[[`                  iris$Sepal.Length 等价于 iris %>% extract2('Sepal.Length')
inset                       `[<-`               iris['aa']=1 等价于 iris %>% inset("aa",value=1)
inset2               `[[<-`              iris['aa']=1 等价于 iris %>% inset2("aa",value=1)
use_series               `$`                  iris$Sepal.Length 等价于 iris %>% use_series("Sepal.Length")
add                       `+`                  iris %>% use_series("Sepal.Length") %>% add(1)
subtract               `-`                  iris %>% use_series("Sepal.Length") %>% subtract(1)
multiply_by         `*`                  iris %>% use_series("Sepal.Length") %>% multiply_by(1)
raise_to_power       `^`                  iris %>% use_series("Sepal.Length") %>% raise_to_power(2)
multiply_by_matrix     `%*%`           
divide_by               `/`
divide_by_int            `%/%`
mod                       `%%`
is_in                       `%in%`
and                       `&`
or                       `|`
equals               `==`
is_greater_than       `>`
is_weakly_greater_than `>=`
is_less_than       `<`
is_weakly_less_than `<=`
not (`n'est pas`)       `!`
set_colnames       `colnames<-`     iris %>% set_colnames(c('a','b','c','d'....))
set_rownames       `rownames<-`     iris %>% set_rownames(c('a','b','c','d'....))
set_names               `names<-`
在文档里面解释了常用的几种函数和方法,具体的内容大家可以参照如下链接:

Abstract
​cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html

tidyverse/magrittr
​github.com/tidyverse/magrittr

如果对有些函数还是不知道怎么使用的话,强烈建议大家去R里面用一些示例数据去运行一下,这样对于R数据包有更多的认识。

最后说一下我正在做的一个GitHub项目-Road2R,是包含了所有我使用过的包和资料和博客的一个集合,我会不断完善,同时也希望大家可以多多pull requests。

  • 上一篇文章: R语言基础

  • 下一篇文章: 没有了
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • 轨道钢承重计算公式及应用[108]

  • 【选型】如何为变频器选取阻值…[81]

  • AIS2023参展厂商名录[338]

  • AGV综合选型[169]

  • APIE 2023第4届亚太国际智能装…[137]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[305]

  • 中国反伪科学运动背后的CIA黑手…[494]

  • [转载]袁隆平真言:中国最大的…[665]

  • 台专家:当年我们造IDF时 大陆…[572]

  • 旅日华人:中国严重误判日本民…[577]

  •  
     相 关 文 章
  • R语言基础[29]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:546.88毫秒
    Powered by:MyPower Ver3.5