Rscript使用C:/temp文件,即使TMP和TMPDIR设置为另一个驱动器
My.Renviron文件指定Rscript使用C:/temp文件,即使TMP和TMPDIR设置为另一个驱动器,r,R,My.Renviron文件指定 TMP = 'F:\temp' TMPDIR = 'F:\temp' 在RStudio中,我得到了以下结果: Sys.getenv("TMP") [1] “F:\temp” [1] “F:\temp” 这一部分应该是这样的。我在F:/上有1 TB的可用空间,在C:/上有不到50 MB的可用空间 但是,当我通过Rscript作为计划任务运行脚本时,它总是会失败,因为它会以某种方式恢复为尝试使用C://作为临时文件,并耗尽空间 我怎样才能解决这个问题 在当前用例
TMP = 'F:\temp'
TMPDIR = 'F:\temp'
在RStudio中,我得到了以下结果:
Sys.getenv("TMP")
[1] “F:\temp”
[1] “F:\temp”
这一部分应该是这样的。我在F:/上有1 TB的可用空间,在C:/上有不到50 MB的可用空间
但是,当我通过Rscript作为计划任务运行脚本时,它总是会失败,因为它会以某种方式恢复为尝试使用C://作为临时文件,并耗尽空间
我怎样才能解决这个问题
在当前用例中,临时文件的主要用户是来自包
sas7bdat.parso
的fread.sas7bdat.parso
。我试着在那个函数调用中设置tempfile=(“F://temp”)
,但没有什么不同。通过系统属性的环境变量选项卡设置它们系统范围内的,以便在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上进行的,但概念是相同的。是否有创建临时文件的特定函数?你到底在做什么导致临时文件被创建?@MrFlick它是
fread
。事实上,在这种情况下,它特别是fread.sas7bdat.parso
,但我做了一些实验,我相信它更普遍地是fread
。我尝试在fread.sas7bdat.parso
语句中设置tmpfile()
内联,但没有任何帮助。这似乎有效,谢谢Eddelbuettel先生。似乎几个月前我设置了这些变量,一些SAS用户决定将它们更改回来。请让我知道,如果你有什么建议,我应该做什么,当我发现他们是谁+1请不要在未经我同意的情况下编辑我的问题,或至少将其标记为您编辑的问题。现在看起来好像是我写的,我没有写,所以我更愿意还原它。谢谢。如果您觉得有必要添加(咳嗽)截图,请随时将其添加到您的问题中。谢谢。但这是答案的一部分,与linux命令行示例相比,它更接近Windows的正确答案,不是吗?请允许我决定答案的一部分。
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:~$