我在Windows上使用R并需要更改存储tmp文件的临时目录。
我在R-help等处查了几个答案,但没有人在工作。
在尝试了这些答案之后(我不得不说我没有明确指出这些答案),
tempdir()
仍然是默认值,就像我尝试不同的方式一样。
任何人都可以提供一个如何执行此操作的详细示例程序吗?
我的会话信息:
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_2.15.2
答案 0 :(得分:21)
在Sys.getenv('R_USER')
指定的目录中创建一个名为.Renviron的文件,并将其保存为TMP = '<your-desired-tempdir>'
行。
write("TMP = '<your-desired-tempdir>'", file=file.path(Sys.getenv('R_USER'), '.Renviron'))
答案 1 :(得分:4)
在Windows中,对我来说有用的是创建一个名为Renviron.site的文件并用
填充它TMPDIR=E:/rtemp
TMP=E:/rtemp
TEMP=E:/rtemp
其中E:/ rtemp是我想要临时文件的目录的路径。 因此,您创建一个新的文本文件,填写上面的文件,并将其名称(和扩展名)更改为Renviron.site。
将它放在R安装目录中,在目录等中(例如C:\ Program Files \ R \ R-3.3.2 \ etc)
显然,你需要重启R studio才能让改变工作! (我使用R studio但它也适用于R)。
对我来说,这个改变让我运行了一个物种分布建模脚本,它在系统分区上创建了非常大的临时文件,消耗了所有空间并最终终止了进程。我已将临时文件移动到usb SSD磁盘(分区E :),瞧,它工作正常。
PS - 答案出现在links you mentioned之一。
答案 2 :(得分:1)
我有类似的问题。就我而言,上述解决方案不起作用。编译时的Rcpp仍使用tempdir()。这是因为我的默认TEMPDIR使用的是Windows用户文件夹,我的用户名中带有波兰字母,R不喜欢它。
我发现在运行R之前必须先设置TEMP,TMP和TMPDIR: https://cran.r-project.org/web/packages/startup/vignettes/startup-intro.html
这应该在系统中完成。我使用以下说明: https://answers.microsoft.com/en-us/windows/forum/windows_7-files/change-location-of-temp-files-folder-to-another/19f13330-dde1-404c-aa27-a76c0b450818
但是我没有更改TEMP和TMP变量,而是在Windows中创建了TMPDIR变量。它为我工作。重新启动后,R会按照Windows TMPDIR的指导指向新的tempdir()!
答案 3 :(得分:0)
对于Linux,我正在使用Ubuntu 18.04.1 LTS。您可以尝试以下行:
write("TMP = YOUR_PATH_VARIABLE", file=file.path('~/.Renviron'))
说明:此行将把已分配给您自己的临时路径的TMP变量写入“ .Renviron”文件。这个“ .Renviron”文件将在您的主目录中创建。 如果这不起作用,请重新启动R或R工作室。原因是在当前R会话之前创建了临时目录。因此,您必须重新启动另一个R会话才能实现此新的TEMP_PATH配置。