【发布时间】:2019-09-01 10:14:24
【问题描述】:
在我打算提交给 CRAN 的包中,我正在使用 .onload(...) 创建一个新环境,其中将存储所需的变量,而无需直接修改全局环境。
.onLoad <- function(...) {
envr <- new.env() # when package is loaded, create new environment to store needed variables
}
此函数保存在名为 zzz.R 的文件中。
然后我使用 assign(...) 将变量分配给新环境:
assign("x", x, envir = envr)
要在我创建的函数中检索新环境中的变量,我会这样做
envr$x
但是,在构建、安装、加载我的包和运行我的主函数时,我收到一个错误,即找不到对象“envr”。
我想知道这里发生了什么。
直接在 R 中创建一个新环境可以正常工作:
envr <- new.env()
envr$a <- 5
envr$a
[1] 5
有解决问题的想法吗?
【问题讨论】:
-
也许可以看到这个答案:stackoverflow.com/a/12605694/2372064。您需要在函数之外定义环境。
-
通过
options可能吗?
标签: r