繁体   English   中英

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

[英]Use explicit namespace with infix operator

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

因此,为了在我的库中使用它,我有以下选择:

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

最后一个选项是我想做的,但是我似乎无法正确理解语法。 我努力了

dplyr::%>%

并获得解析错误。

dplyr::`%>%`

不起作用。

`dplyr::%>%`

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

只需导入管道操作符,只需添加如下一行即可

importFrom(magrittr, "%>%")

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

#' @importFrom magrittr %>%

放入您的.R文件之一即可执行相同操作。

您可能也可能不想将其导出。 用以下行导出它

export("%>%")

在您的NAMESPACE文件中或使用roxygen2

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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