6

我有一个从 Rstudio 运行时完美运行的 R 脚本。它使用一个.Renviron文件来提供可见的环境变量Sys.getenv()(所以我知道它有效)。

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

问题

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

我试过的

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

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

基于,我也尝试过Sys.getenv("C:/Users/Administrator/Documents/.Renviron"),但再次没有运气

4

3 回答 3

4

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

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

于 2020-05-15T00:55:53.637 回答
1

RScript 执行与普通 R 相同的初始化,除非这被命令行选项 ( --no-environ) 明确禁用。.Renviron和文件在不同的.Rprofile位置搜索,按优先级降序排列:

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

该文档提供了更多详细信息。

由于您尝试更改位置 (2) 和 (3) 中的文件但没有成功,因此您的当前工​​作目录中有另一个 .Renviron文件,您正在从该文件中启动Rscript.

于 2019-07-10T12:53:30.907 回答
1

这对我有用

path_to_Renviron_file <- "C:/Users/Administrator/Documents/.Renviron"
readRenviron(path_to_Renviron_file) 
于 2019-07-10T12:46:02.037 回答