%dplyr%和%>%(magrittr)之间的区别

24
dplyr包引入了%.%操作符,将左侧作为右侧函数的参数传递,类似于*NIX管道。而magrittr包是一个更轻量级的包,仅用于定义类似管道的操作符。

但是它们使用的操作符不同,一个是%.%,另一个是%>%它们之间有区别吗?我能否在dplyr代码中只使用%>% ,还是会导致微妙的错误? 检查代码后发现,它们在早期阶段就采用了非常不同的路径,因此简单的肉眼比较会表明它们是不同的。我没有在网上搜索到任何详细信息,文档本身也没有提到过这些内容。

更新:可能的答案潜藏在这里的评论中:http://blog.rstudio.org/2014/01/17/introducing-dplyr/ - Ari B. Friedman
2个回答

36

请查看当前 NEWS 文件中的第一条目:

dplyr 现在从 magrittr 中导入了 %>% (#330)。我建议您使用这个操作符,而不是 %.%,因为它更易于键入(因为您可以按住 shift 键),并且更灵活。


1
但现在我可以看到这些信息,而且(也许?)不会遭受 RTFM“惩罚”? - WestCoastProjects
1
SOF是模糊文档搜索的更好工具(“我甚至不知道该概念的确切术语是什么..”) - WestCoastProjects
我认为这应该成为新的被接受的答案,因为另一个在这一点上更或多或少已经过时了。 - qdread

16

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
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接