%>%
没有内在的含义,但是用户(或程序包)可以随意使用%whatever%
自己喜欢的任何方式定义形式的运算符。例如,此函数将返回一个字符串,该字符串包含其左参数,后跟逗号和空格,然后是右参数。
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
R的基数提供%*%
(矩阵多重乘法),%/%
(整数除法),%in%
(是rhs的组成部分),%o%
(外部乘积)和%x%
(kronecker乘积)。尚不清楚是否%%
属于此类,但它代表模。
expr R包expm定义一个矩阵幂运算符%^%
。有关示例,请参见R中的矩阵幂。
运算符运算符R包已定义了许多此类运算符,例如%!in%
(不为%in%
)。参见http://cran.r-project.org/web/packages/operators/operators.pdf
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甚至更多的信息。
dplyr dplyr R软件包,用于定义%.%
类似的运算符;但是,它已被弃用,dplyr现在建议用户使用%>%
从magrittr导入的dplyr并将其提供给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
postlogic定义的postlogic包%if%
和%unless%
运算符。
包装器 R包(包装器)定义了一个点管道%.>%
,该点管道是的显式版本%>%
,它不隐式插入参数,而仅在右侧替代点的显式使用。这可以视为的另一种选择%>%
。参见https://winvector.github.io/wrapr/articles/dot_pipe.html
Bizarro管。这实际上不是管道,而是一些聪明的基本语法,以类似于管道的方式工作,而无需实际使用管道。在http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/中进行了讨论,其想法是代替编写:
1:8 %>% sum %>% sqrt
## [1] 6
一个写道。在这种情况下,我们显式使用dot而不是省略dot参数,并以名称为dot(.
)的变量的赋值结束管道的每个组件。我们在此之后使用分号。
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
更新添加了有关expm软件包的信息,并在顶部提供了简化示例。添加了postlogic软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句