从Powershell运行Rscript时找不到.Renviron变量?

时间:2019-07-10 12:26:40

标签: r renviron

我有一个R脚本,当从Rstudio运行时,它可以完美运行。它使用.Renviron文件来提供在Sys.getenv()中可见的环境变量(因此我知道它可以工作)。

但是,当我通过powershell运行完全相同的脚本时,R脚本神秘地找不到这些环境变量(我通过print(Sys.getenv())确认了这一点-通过.Renviron提供的环境变量无处可寻)被看到。

问题

为什么从Powershell运行R脚本(而不是在RStudiom中运行一切正常的脚本)时找不到.Renviron变量

我尝试过的

.Renviron文件当前保存在"C:/Users/Administrator/Documents/.Renviron"

检查normalizePath(Sys.getenv('R_HOME'))会返回"C:\\Program Files\\R\\R-3.6.0",所以我也尝试将.Renviron放在那里。没有运气

基于this,我也尝试了Sys.getenv("C:/Users/Administrator/Documents/.Renviron"),但还是没有运气

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题:.Renviron文件在Windows上被完全忽略。
我认为最终可行的方法是重新安装R(我安装了R 3.6,安装了R 4.0)。

但是事实证明我错了。魔术酱是在--cd-to-userdocsR.exe命令中添加Rscript.exe。 我在任何地方都找不到此选项的文档,并且它也没有显示在命令行参数帮助中,但是它可以工作。

答案 1 :(得分:1)

RScript执行与普通R相同的初始化,除非使用命令行选项(--no-environ)专门将其禁用。在.Renviron.Rprofile文件中,按照优先级从高到低的顺序在不同的位置进行搜索:

  1. 在当前工作目录中
  2. 在用户的主目录中
  3. 在R主目录(R_HOME

The documentation gives more details.

由于您尝试更改位置(2)和(3)的文件均未成功,因此可以推断出当前工作目录中还有另一个 .Renviron文件从中启动Rscript

答案 2 :(得分:-1)

这是对我有用的

path_to_Renviron_file <- "C:/Users/Administrator/Documents/.Renviron"
readRenviron(path_to_Renviron_file)