使用来自另一个R包的未导出功能?

时间:2015-09-12 06:09:31

标签: r cran

我经常使用其他未导出的包中的实用程序类型函数: pkg:::fun()。我想知道我是否可以在我自己的R包中的新功能/范围内使用这样的功能。这里的正确方法是什么?是否在我的描述文件中包含了足够的包?

2 个答案:

答案 0 :(得分:14)

另一个技巧是使用getFromNamespace

fun = getFromNamespace("fun", "pkg")

:::的唯一优势是您没有获得任何笔记,并且CRAN允许这样做。当然,这不是一个好习惯,因为pkg中隐藏的变化会破坏你的包裹。

注意:使用roxygen,您还必须手写#' @importFrom utils getFromNamespace或将其放入NAMESPACE。

答案 1 :(得分:11)

  • 总结来自@baptise等的评论......:

  • CRAN上不允许
  • :::,所以选项:

    1. 要求作者将其导出,以便您可以通过标准导入或建议在您的包装中使用它。
    2. 复制/解除其版本并明确引用您的包裹。