该dplyr
包引入了%.%
运算符以将左侧作为右侧函数的参数传递,类似于 *NIX 管道。该magrittr
包是一个更轻量级的包,它的存在仅用于定义类似管道的运算符。
然而一个用途%.%
和另一个%>%
。
两者有什么区别吗?我%>%
甚至可以在dplyr
代码中使用,还是会导致细微的错误?
在检查代码时,它们在早期采用了非常不同的路径,因此简单的眼球比较会表明它们是不同的。当我在网上搜索它们时,我无法找到任何记录的内容,也没有在文档本身中遇到任何内容。
查看当前NEWS文件中的第一项:
dplyr 现在
%>%
从 magrittr (#330) 导入。我建议您使用它而不是%.%
因为它更容易键入(因为您可以按住 shift 键)并且更灵活
dplyr 现在%>%
从 magrittr 导入并默认使用它。有关详细信息,请参阅此答案。
差异包括
您可以使用 a.
作为左侧的占位符,例如
iris %>% plot(Sepal.Length ~ Sepal.Width, data = .)
%>%
尊重(rhs)
,例如
1:10 %>% (call("sum"))
1:10 %>% (function(x) x^2 + 2*x)
有关这方面更有用的示例,请参阅
https://gist.github.com/anonymous/0c69b019d0b4f6ae5050
对于单参数函数调用,您可以省略括号:
"2014-05-18" %>% as.Date