R中的%>%函数是什么意思?

我已经看到在dplyrrvest等软件包中使用%>% (大于百分比的百分比)函数。 这是什么意思? 这是一种在R中编写闭包块的方法吗?

谢谢

%…%运营商%>%没有内build的含义,但用户(或包)可以自由地以任何他们喜欢的方式定义forms为%whatever%操作符。 例如,这个函数将返回一个string,它由左边的参数和后面的逗号和空格组成,然后是正确的参数。

 "%,%" <- function(x, y) paste0(x, ", ", y) # test run "Hello" %,% "World" ## [1] "Hello, World" 

R的基数提供了%*% (matrix多项式), %/% (整数除法), %in% (以rhs的一个分量为lhs), %o% (外积)和%x% (克罗内克积) 。 目前尚不清楚%%是否属于这一类,但它代表了模。

magrittr%>%的情况下,magrittr R包将其定义为在magrittr小插图中讨论的。 见http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html

magittr也定义了一些其他这样的操作员。 有关更多讨论%T>%%<>%%$%以及http://cran.r-project.org/web/packages/magrittr/magrittr.pdf的更多pipe道操作员部分,请参阅前面的链接细节。;

dplyr dplyr R包用来定义一个相似的%.%运算符; 但是,它已被弃用,现在dplyrbuild议用户使用dplyr从magrittr导入的%>% ,并提供给dplyr用户。 正如David Arenburg在评论中提到的那样,这个SO问题讨论了它与magrittr的差异 %>% : %。%(dplyr)和%>%(magrittr)

pipeR R包(pipeR)定义了一个类似于magrittr的%>%的%>>%运算符。 见http://renkun.me/pipeR-tutorial/

pipeR软件包也定义了一些其他这样的操作员。 参见: http : //cran.r-project.org/web/packages/pipeR/pipeR.pdf

expm R程序包expm定义了一个matrix功率操作符%^% 。 有关示例,请参阅R中的Matrix power 。

运算符运算符R包已经定义了大量这样的运算符,例如%!in% (不是%in% )。 请参阅web/packages/operators/operators.pdf

更新 expm软件包和简化示例顶部的信​​息。

阅读G.Grothendieck( http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html )提供的链接后,我的理解是%>%是一个操作符,提高可读性和生产力,因为当嵌套多个函数时,通过这些pipe道更容易跟踪多个函数的stream向,而不是向后走。