【问题标题】:How do I specify that the tidyverse pipe %>% comes from the package tidyr?如何指定 tidyverse 管道 %>% 来自 tidyr 包?
【发布时间】:2020-10-17 00:31:23
【问题描述】:

我正在尝试调整我编写的函数以使用“::”显式调用其他包,例如dplyr::mutate。但是,添加“::”不适用于管道运算符%>%。我该如何调用它?

行不通

  DF <- data.frame(A = LETTERS[1:4],
             B = 1:4) magrittr::%>% 
  dplyr::mutate(C = 5)

我收到的错误是“mutate_(.data, .dots = compat_as_lazy_dots(...)) 中的错误: 缺少参数“.data”,没有默认值”,所以我认为这意味着它没有将左侧 data.frame 的输入通过管道传递到函数mutate

【问题讨论】:

标签: r dplyr tidyverse tidyr


【解决方案1】:

我应该是:

magrittr::`%>%`()

【讨论】:

  • 当我尝试DF &lt;- data.frame(A = LETTERS[1:4], B = 1:4) magrittr::`%&gt;%`(dplyr::mutate(C = 5)) 时,出现“意外符号”错误。
  • @shirewoman2 如果您使用magrittr::`%&gt;%,您将无法使用管道。你必须做magrittr::`%&gt;%(left, right)。所以你失去了管道操作员的兴趣......
  • 该死。我广泛使用管道。那没办法了?
  • @shirewoman2 不要使用::,简单地说。你为什么这样做?你甚至可以避免使用管道运算符进行编程,因为它很慢。但是,我知道,它的可读性很好。
  • @StéphaneLaurent :-) 对于::,我遵循这里的建议来编写一个包:r-pkgs.org/namespace.html。对于%&gt;%,是的,我喜欢它的可读性。不过谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多