获取一个包的名称,在该包中函数的加载方式对roxygen非常健壮
我有两个包,让我们称它们为获取一个包的名称,在该包中函数的加载方式对roxygen非常健壮,r,namespaces,packages,roxygen2,R,Namespaces,Packages,Roxygen2,我有两个包,让我们称它们为main\u-package和helper\u-package。在helper\u包中我有如下功能: helper_fn = function(r_package=environmentName(parent.frame())) { new_fn = function() { return(r_package) } return(new_fn) } 在main\u包中,我调用helper\u fn: #' @import he
main\u-package
和helper\u-package
。在helper\u包中
我有如下功能:
helper_fn = function(r_package=environmentName(parent.frame())) {
new_fn = function() {
return(r_package)
}
return(new_fn)
}
在main\u包中
,我调用helper\u fn
:
#' @import helper_package
main_fn = helper_fn()
这可以工作,并且main\u fn
返回“main\u package”。但是,当我运行roxygen为main\u包
构建文档和名称空间时,我得到了以下错误
Error: Failure in roxygen block beginning main_fn.R:1
using 'as.environment(NULL)' is defunct
Execution halted
roxygen正在另一个环境中执行代码,
environmentName(parent.frame())
似乎是NULL
。有没有更好的方法让roxygen工作?你想记录什么?我希望roxygen为main\u包
构建文档、名称空间等。它失败了,因此helper\u-package
没有作为导入添加到main\u-package
的名称空间中。但是为什么要尝试记录main\u-fn
这是一个字符串?啊,我发现我把它简化了main\u fn
是一个由helper\u fn
创建的函数(我已经编辑了这个问题)。当我在描述文件的“Depends”字段中添加了一个必需的包时,错误被消除了。