Изменить временный каталог
Я использую 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
или же
tinytest
package), вы можете перейти во временную папку для воспроизводимых рабочих процессов, используя
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 usethis
package имеет удобный ярлык:usethis::edit_r_environ()
Это откроет и/или создаст файл вашей среды, после чего вы сможете заполнить ответ Адриана Стойки выше:
TMPDIR=E:/rtemp
TMP=E:/rtemp
TEMP=E:/rtemp