即使TMP和TMPDIR设置为另一个驱动器,Rscript也使用C:/作为临时文件

时间:2016-08-09 18:32:48

标签: r

我的.Renviron文件指定

TMP = 'F:\temp' 
TMPDIR = 'F:\temp'

在RStudio中我得到以下结果:

Sys.getenv("TMP")
  

[1]“F:\ temp”

Sys.getenv("TMPDIR")
  

[1]“F:\ temp”

那部分是应该的样子。我在F:/上有1 TB的可用空间,而在C:/。

上有少于50 MB的空闲空间

然而,当我通过Rscript作为计划任务运行脚本时,它总是失败,因为它以某种方式恢复为尝试使用C:/用于临时文件并且空间不足。

我该如何解决这个问题?

在当前用例中,临时文件的主要用户来自包fread.sas7bdat.parso sas7bdat.parso。我尝试在该函数调用中设置tempfile=("F://temp"),但没有任何区别。

1 个答案:

答案 0 :(得分:4)

通过系统属性的“环境变量”选项卡将它们设置为系统范围,以便在 R启动之前将它们设置为。这就是Rstudio所完成的:它在启动底层R进程之前作为GUI / IDE 运行。

插图:

edd@max:~$ TMP=/opt TEMPDIR=/src Rscript -e \   # line broken for display only
                       'print(Sys.getenv("TMP")); print(Sys.getenv("TEMPDIR"))'
[1] "/opt"
[1] "/src"
edd@max:~$ 

该演示在Linux上,但概念是相同的。