![](/img/trans.png)
[英]What are the differences between R's new native pipe `|>` and the magrittr pipe `%>%`?
[英]Differences between %.% (dplyr) and %>% (magrittr)
dplyr
包引入了%.%
运算符以将左侧作为右侧函数的参数传递,类似于 *NIX 管道。 magrittr
包是一个更轻量级的包,它的存在仅用于定义类似管道的运算符。
然而,一个使用%.%
,另一个使用%>%
。
两者之间有什么区别吗? 即使在dplyr
代码中,我也可以只使用%>%
,还是会导致细微的错误?
在检查代码时,它们在早期采用了截然不同的路径,因此简单的眼球比较会表明它们是不同的。 当我在网上搜索它们时,我找不到任何记录在案的内容,也没有在文档本身中找到任何内容。
查看当前新闻文件中的第一项:
dplyr 现在从 magrittr (#330) 导入
%>%
。 我建议你使用它而不是%.%
因为它更容易输入(因为你可以按住 shift 键)并且更灵活
dplyr 现在从 magrittr 导入%>%
并默认使用它。 有关详细信息,请参阅此答案。
差异包括
你可以使用一个.
作为左侧的占位符,例如
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
我讨厌这样说,但是%>%应该被禁止。 没有人描述了它的实际作用,似乎没有改变。 我们不应该这样胡扯,因为它太混乱了。 我一直在阅读的每种解释都矛盾或没有道理。 我们能摆脱这个运算符或它是什么吗? 我经常使用R,并找到其他所有函数或运算符作为自我解释。 这是垃圾,只会使它无法使用,直到有人可以清楚地说明或标准化它。 最好只是在那之前摆脱它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.