繁体   English   中英

%.% (dplyr) 和 %>% (magrittr) 之间的差异

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM