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

pat*_*pan 14 r cran

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

jak*_*b-r 14

另一个技巧是使用 getFromNamespace

fun = getFromNamespace("fun", "pkg")
Run Code Online (Sandbox Code Playgroud)

唯一的优点:::是你没有得到任何NOTE并且它在CRAN上是允许的.当然,这不是一个好的做法,因为隐藏的变化pkg会打破你的包裹.

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


pat*_*pan 11

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

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

    1. 要求作者将其导出,以便您可以通过标准导入或建议在包装中使用它.
    2. 复制/提升它的一个版本,并清楚地引用你的包裹.