编写R包:加载包时自动设置环境变量

Writing an R package: automatically set environment variables when the package is loaded

我正在开发一个 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_VARfoo。可以预见 my_function 也会引发错误:Error in Sys.getenv(ENV_VAR) : object 'ENV_VAR' not found

正如@joran 评论的那样,.onLoad 函数是我需要的。