如何/何时在 R 中设置 HOME 环境变量

mac*_*mac 5 r

询问超级用户并得到蟋蟀,所以在这里尝试。这个似乎跨越了 SU/SO 的边界。

在解决某种 R 配置问题时,尝试在同事的 Windows 10 机器上编织 .Rmd 时导致 pandoc 转换失败,我注意到第一个路径.libPaths()指向网络目录上的路径而不是c:/Users/[username]/R/win-library/...目录。

Sys.getenv()在 R 中运行显示HOMEDRIVEHOMEPATH(如预期的那样)c:\Users\[username],但HOME列出了一个环境变量,指向我们在中找到的网络路径.libPaths()

SET在 cmd shell 中运行根本没有列出这个HOME环境变量,所以它似乎是 R 在其他地方找到的东西......

R 从哪里获得这个HOME环境变量?

FWIW:我通过设置 Windows 用户环境变量 HOME=%HOMEDRIVE%%HOMEPATH% 修复了配置问题;R 然后从那里适当地设置所有其他环境变量。

Ist*_*sta 5

R 启动有点复杂,但它有很好的文档记录。通常的起点是help("Startup")。你的问题的答案没有记录在那里,但你会在另见部分找到这个线索:

有关 Windows 上“home”目录的定义,请参阅“rw-FAQ”Q2.14。它可以通过 Sys.getenv("R_USER") 从正在运行的 R 中找到

实际上,https : //cran.r-project.org/bin/windows/base/rw-FAQ.html#What-are-HOME-and-working-directories_003f 上引用的常见问题解答给了我们答案:

主目录设置如下: 如果设置了环境变量 R_USER,则使用其值。否则,如果设置了环境变量 HOME,则使用其值。在这两个用户可控设置之后,R 尝试查找系统定义的主目录。它首先尝试使用 Windows 的“个人”目录(通常是 C:\Users\username\Documents)。如果失败,如果环境变量 HOMEDRIVE 和 HOMEPATH 都已设置(它们通常是),则值为 ${HOMEDRIVE}${HOMEPATH}。如果所有这些都失败,则使用当前工作目录。