我有一个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")
,但还是没有运气
答案 0 :(得分:2)
我遇到了同样的问题:.Renviron
文件在Windows上被完全忽略。
我认为最终可行的方法是重新安装R(我安装了R 3.6,安装了R 4.0)。
但是事实证明我错了。魔术酱是在--cd-to-userdocs
或R.exe
命令中添加Rscript.exe
。
我在任何地方都找不到此选项的文档,并且它也没有显示在命令行参数帮助中,但是它可以工作。
答案 1 :(得分:1)
RScript执行与普通R相同的初始化,除非使用命令行选项(--no-environ
)专门将其禁用。在.Renviron
和.Rprofile
文件中,按照优先级从高到低的顺序在不同的位置进行搜索:
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)