【发布时间】:2017-06-12 02:21:19
【问题描述】:
我正在开发一个 R 包,我希望我的一个函数的行为取决于环境变量 ENV_VAR,其默认值为 foo,而用户也可以在运行时更改此 ENV_VAR使用Sys.setenv(ENV_VAR = 'bar')。我试过这个
Sys.setenv(ENV_VAR = 'foo')
#' @export
my_funciton <- function(){
v <- Sys.getenv(ENV_VAR)
if (v == 'foo') ... else if (v == 'bar') ...
}
但是当我在 RStudio 中构建和重新加载包时,我运行Sys.getenv(ENV_VAR) 给出了"",即在加载包时,它没有将环境ENV_VAR 设置为foo。可以预见的是my_function 也会引发错误:Error in Sys.getenv(ENV_VAR) : object 'ENV_VAR' not found
【问题讨论】:
-
您可能想查看
.onLoad或.onAttach(以及相应的清理版本,以便在您的包被分离/卸载时重置内容)。