Изменить временный каталог

Я использую R на окнах и мне нужно изменить временный каталог, где хранятся файлы TMP.

Я проверил несколько ответов, здесь, в R-справке и т. Д., Но никто не работает.

Некоторые ссылки, которые я пробовал: здесь, здесь и здесь.

Попробовав эти ответы (я должен сказать, что я не совсем понял их смысл), 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

6 ответов

Решение

Создайте файл с именем.Renviron в каталоге, указанном Sys.getenv('R_USER') и сохранить его с линией TMP = '<your-desired-tempdir>',

write("TMP = '<your-desired-tempdir>'", file=file.path(Sys.getenv('R_USER'), '.Renviron'))

В 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\ и т. Д.)

Очевидно, что вам нужно перезапустить R studio, чтобы изменения сработали! (Я использую R studio, но она должна работать и в R).

Для меня это изменение позволило мне запустить скрипт моделирования распределения видов, который создавал очень большие временные файлы в системном разделе, занимая все пространство и, в конце концов, убивал процесс. Я переместил временные файлы на usb SSD диск (раздел E:), и вуаля, это сработало.

PS - ответ был по одной из упомянутых вами ссылок.

Для Linux я использую Ubuntu 18.04.1 LTS. Вы можете попробовать следующую строку:

write("TMP = YOUR_PATH_VARIABLE", file=file.path('~/.Renviron'))

Объяснение: Эта строка запишет переменную TMP, которая была назначена вашему собственному временному пути, в файл.Renviron. И этот файл.Renviron будет создан в вашем домашнем каталоге. Если это не сработает, перезапустите R или R studio. Причина в том, что временный каталог был создан до текущего сеанса R. Таким образом, вам нужно перезапустить еще один R-сеанс для реализации этой новой конфигурации TEMP_PATH.

У меня была аналогичная проблема. В моем случае описанные выше решения не сработали. Rcpp при компиляции по-прежнему использовал tempdir(). Это было вызвано тем фактом, что в моем TEMPDIR по умолчанию использовалась моя пользовательская папка Windows, в моем имени пользователя есть польские буквы, и R это не нравится.

Я обнаружил, что TEMP, TMP и TMPDIR должны быть установлены перед запуском R: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 указывает на новый tempdir () в соответствии с Windows TMPDIR!

Для тех, кто пришел сюда, чтобы облегчить модульные тесты R (например, с testthatили же tinytestpackage), вы можете перейти во временную папку для воспроизводимых рабочих процессов, используя dir.create():

      test_that("the functions used for folder processing work", {

  # this will create a temp folder, but tempdir() won't let you name it:
  test_dir <- tempdir() 

  # this will create a folder within our temp folder, with a name of our choice:
  test_dir <- paste0(test_dir, "/hello123")
  dir.create(path = test_dir)
  
  # new folder should exist now:
  expect_true(dir.exists(test_dir))

  # and now the unit tests:

  # let's say we have a function `has_folder_named_hello123()` in our package,
  # which checks the folder structure for a folder named 'hello123':
  expect_true(has_folder_named_hello123(test_dir))
})

The usethispackage имеет удобный ярлык:usethis::edit_r_environ()

Это откроет и/или создаст файл вашей среды, после чего вы сможете заполнить ответ Адриана Стойки выше:

      TMPDIR=E:/rtemp 
TMP=E:/rtemp 
TEMP=E:/rtemp
Другие вопросы по тегам