与infix运算符一起使用显式名称空间

时间:2018-07-01 14:10:29

标签: r dplyr

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

因此,为了在我的图书馆中使用此书,我有以下选择:

  1. 只需在每个函数的开头使用library(dplyr)
  2. 请勿使用infix运算符,而应使用“管道”运算符%>%来编写函数。
  3. 尝试使用dplyr::%>%

最后一个选项是我想做的,但是我似乎无法正确理解语法。我尝试过

dplyr::%>%

并获得解析错误。还有

dplyr::`%>%`

不起作用。还有

`dplyr::%>%`

也不起作用。我认为没有其他方法可以放置反引号。这在R中是可能的吗?还是我只需要使用选项1或2?

1 个答案:

答案 0 :(得分:6)

只需添加类似

的行即可导入管道运算符
importFrom(magrittr, "%>%")

在您的NAMESPACE文件中,或者如果您使用的是roxygen2,则将

#' @importFrom magrittr %>%

进入您的.R文件之一以执行相同的操作。

您可能也可能不想将其导出。用类似

的行将其导出
export("%>%")

在您的NAMESPACE文件中或与roxygen2

#' @export
magrittr::`%>%`

如果希望用户在使用软件包时使用管道运算符。如果仅需要内部使用,则不要导出。