【问题标题】:Writing an R package: automatically set environment variables when the package is loaded编写R包:包加载时自动设置环境变量
【发布时间】: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(以及相应的清理版本,以便在您的包被分离/卸载时重置内容)。

标签: r r-package


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2014-02-01
    相关资源
    最近更新 更多