R Sys.getenv()返回错误的值

时间:2018-04-25 17:44:40

标签: r environment-variables rscript

我在ubuntu中使用R.返回的环境变量值是错误的。我将环境变量设置为值。磁盘崩溃后,我更改了它的值。但是R将始终返回旧值。我不知道R缓存旧值的位置并坚持返回旧值。

环境变量的新值

echo $WFDATA
/current/environment/value

启动新的R终端

R
> Sys.getenv('WFDATA')
[1] "/old/environment/value"

现在尝试将环境变量设置为新值

> Sys.setenv(WFDATA='/current/environment/value')
> Sys.getenv('WFDATA')
[1] "/current/environment/value"
> q()
Save workspace image? [y/n/c]: y

启动一个新的R终端,您仍然可以获得旧值

> Sys.getenv('WFDATA')
[1] "/old/environment/value"
> 

不确定为什么R如此顽固以至于记住旧的价值。任何人都可以建议一种方法来解决这个问题?此问题出现在R会话和Rscript文件中。

1 个答案:

答案 0 :(得分:1)

我找出了问题的根源。其他人在根位置设置了R环境。这样,环境始终是硬编码值。我使用Linux,这应该适用于大多数人。

in the /etc/R directory
ls
ldpaths  Makeconf  Renviron  Renviron.site  repositories  Rprofile.site

您可以在Renviron和Renviron.site中设置环境变量 这些将在本机上的所有R会话中看到。格式与。相同 shell使用的那些。

VARNAME=somevalue

在用户的主目录中,您可以通过在“.Renviron”文件中重新定义KEY =值对来覆盖这些值。可以将新环境变量添加到此文件中。我还没有确认R会从用户的shell中学习并记住环境变量。其他人可以稍后更新。