更改临时目录

时间:2013-06-14 11:14:49

标签: r tempdir

我在Windows上使用R并需要更改存储tmp文件的临时目录。

我在R-help等处查了几个答案,但没有人在工作。

我尝试过的一些链接:hereherehere

在尝试了这些答案之后(我不得不说我没有明确指出这些答案), 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

4 个答案:

答案 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配置。