【发布时间】:2016-09-17 23:15:05
【问题描述】:
我正在寻找一种简单的学生证明方法来在 R 会话中指定自定义 TMPDIR。
R 似乎无法扩展~ 或$USER,所以如果我只是在.Renviron 中写入TMPDIR=~/tmp 或TMPDIR=$HOME/tmp,它不会找到该文件夹,而是使用/tmp,它安装在@ 987654328@,导致某些包编译错误。我必须改用文件夹的完整路径,每个学生的路径都不一样。
我知道的解决方法是在Bash中设置TMPDIR并在调用R之前将其导出,我想知道是否有更简单的方法不依赖于实际的主目录路径。理想情况下,我想为所有学生提供相同的 .Renviron 文件,并且根本不让他们使用 shell。
【问题讨论】:
-
我不确定为什么这不起作用,但是将
local({ Sys.setenv("TMPDIR" = sprintf("%s/tmp", path.expand("~"))) })放入$R_HOME/etc/Rprofile.site会在我的机器上正确设置TMPDIR变量(回复:Sys.getenv("TMPDIR")的行为符合预期)。但是,我没有通过编译包来测试这一点。 -
感谢 nrussell 的想法 - 但它不起作用,我想在
.Rprofile中设置TMPDIR已经太晚了。即使没有安装任何东西,您也可以通过调用tempdir()来测试它是否有效。
标签: r environment-variables tilde-expansion