我最近向 CRAN 提交的内容被退回了,因为我有一份关于全球环境的作业,但现在这已引起人们的不满。
我有一个嵌入式数据集(sysdata.rda),其中包含基于用户所在州(如美国)的配置参数。我希望当新用户使用该程序时可以更新此嵌入数据集。我之前在用户使用的初始函数中更新了这些数据,并让用户可以通过全局分配来访问它。
我正在努力弄清楚如何更新此嵌入数据并使其成为用户在剩余会话中使用的默认数据。
以前我将数据存放在 /data 中,最近将其切换到 /R/sysdata.rda,因为它似乎更适合该区域设置。现在我不太确定了。
非常感谢任何帮助
关键是要在全局环境以外的环境中进行分配。有两种基本技术,使用local()
and <<-
或明确创建一个新环境:
使用显式环境非常简单:创建环境,然后像列表一样分配给它:
my_opts <- new.env(parent = emptyenv())
set_state <- function(value) my_opts$state <- value
get_state <- function() my_opts$state
Using local()
有点复杂,需要一些技巧<<-
set_state <- NULL
get_state <- NULL
local({
state <- NULL
get_state <<- function() state
set_state <<- function(value) state <<- value
})
有关如何操作的更多信息<<-
作品见https://github.com/hadley/devtools/wiki/environments https://github.com/hadley/devtools/wiki/environments,在“赋值:将名称绑定到值”部分中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)