使用带有中缀运算符的显式命名空间

Mar*_*ing 0 r dplyr

dplyrř封装具有%>%运算符,它是一个自定义缀运算符.如果一个附加名称空间,library(dplyr)可以使用此运算符.在库代码library(dplyr)中,文件顶部无效,因为存储了执行源代码后的环境; 加载的包对此没有影响.

所以为了在我的库中使用它,我有以下选项:

  1. 只需library(dplyr)在每个功能的开头使用.
  2. 不要使用中缀运算符,而是使用"管道"运算符编写函数%>%.
  3. 尝试使用dplyr::%>%.

最后一个选项是我想要做的,但我似乎无法正确使用语法.我试过了

dplyr::%>%
Run Code Online (Sandbox Code Playgroud)

并获得解析错误.也

dplyr::`%>%`
Run Code Online (Sandbox Code Playgroud)

不起作用.和

`dplyr::%>%`
Run Code Online (Sandbox Code Playgroud)

也不起作用.我认为没有任何其他方法可以放置反引号.这是R中可能的事情,还是我必须使用选项1或2?

use*_*330 6

只需通过添加一行来导入管道操作符即可

importFrom(magrittr, "%>%")
Run Code Online (Sandbox Code Playgroud)

在你的NAMESPACE文件中,或者如果你正在使用roxygen2,推杆

#' @importFrom magrittr %>%
Run Code Online (Sandbox Code Playgroud)

进入你的一个.R文件做同样的事情.

您可能也可能不想将其导出.用像这样的行导出它

export("%>%")
Run Code Online (Sandbox Code Playgroud)

在您的NAMESPACE文件中或与roxygen2

#' @export
magrittr::`%>%`
Run Code Online (Sandbox Code Playgroud)

如果您希望用户在使用您的包时使用管道操作员.如果您只需要在内部提供它,请不要导出它.