[R] Cannot change location of tempdir()

Berend Hasselman bhh at xs4all.nl
Thu Mar 8 12:32:53 CET 2012


On 08-03-2012, at 12:15, Jon Olav Skoien wrote:

> Hi,
> 
> One of the functions I use needs to write to a temporary file, in the directory given by tempdir(). I want to change this from the standard one, as the file is too large for the drive. However, tempfile() doesnt seem to respect the environment variables when I change them with Sys.setenv(). In a fresh R-session:
> 
> > Sys.getenv("TMP")
> [1] "C:\\Users\\skoiejo\\AppData\\Local\\Temp"
> >  Sys.setenv(TMP = "e:\\Temp\\Rtmp")
> > Sys.getenv("TMP")
> [1] "e:\\Temp\\Rtmp"
> >  tempfile()
> [1] "C:\\Users\\skoiejo\\AppData\\Local\\Temp\\Rtmp2tvQ7U\\file499a5987"
> # I have also tried to change "TMPDIR", "TEMP" and "R_USER", all with the same result.
> 
> # The directory is writable:
> > write("some text", file = paste(Sys.getenv("TMP"),"test.txt",sep = ""))
> > list.files(Sys.getenv("TMP"))
> [1] "test.txt"
> 
> I have probably misunderstood something, but what? Session info below.

From the help for Sys.setenv:

Sys.setenv sets environment variables (for other processes called from within R or future calls to Sys.getenv from this R process).

You should try

tempfile(tmpdir=Sys.getenv("TMP"))

and see if that works.

Berend



More information about the R-help mailing list