R中的%>%函数是什么意思?
我已经看到在dplyr和rvest等软件包中使用%>%
(大于百分比的百分比)函数。 这是什么意思? 这是一种在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向,而不是向后走。