Magrittr 函数 - 如何打包它们?

Magrittr functions - how to package them?

我有两个关于在 magrittr 包中编写函数并将它们包含在包中的相关问题。

在编写函数的正常方式中,如果任何步骤使用来自 package.a 的函数,您可以在函数调用中指定 library(package.a)。在 pipe 环境中(来自 magrittr),你如何称呼它?

这部分问题是在我尝试打包我的函数时出现的,我的一些函数使用了magrittr的创建函数的方式。我无法将这些功能添加到包中。 Devtools 包的 combine 函数无法识别 %>% 管道。基本上我不得不将它们重新编写为正常函数以将它们包含在包中。你是如何克服这个问题的?

更新您的 NAMESPACE 文件,请参阅 1.5 Package namespaces
添加import(magrittr),不要忘记在DESCRIPTION文件中添加Imports: magrittr

关于您对 :: 的评论。
当您使用 import(magrittr) 导入所有 magrittr 导出函数时,您不必使用 :: 运算符指向包。
当然,只要你没有在你的包中创建一个具有相同名称的函数来覆盖导入包中的名称,那么你就需要 ::.
如果您使用 importFrom() 而不是 import() 并且您没有导入所需的功能,则还需要 :: - 无论如何都不推荐这样做。
您可能想要使用 :: 的另一种情况是当您使用 SuggestsEnhances 时,其中的 none 无论如何都在该问题的范围内。