R Sys.getenv () возвращает неправильное значение - PullRequest
0 голосов
/ 25 апреля 2018

Я использую R в Ubuntu.Возвращено неверное значение переменной среды.У меня была переменная окружения, установленная в значение.После сбоя диска я изменил его значение.Однако R всегда будет возвращать старое значение.Я не знаю, где R кэшировал старое значение и настаивает на возвращении старого значения.

Новое значение переменной среды

echo $WFDATA
/current/environment/value

Запуск нового терминала R

R
> Sys.getenv('WFDATA')
[1] "/old/environment/value"

Теперь попробуйте установить переменную среды на новое значение

> Sys.setenv(WFDATA='/current/environment/value')
> Sys.getenv('WFDATA')
[1] "/current/environment/value"
> q()
Save workspace image? [y/n/c]: y

Запустите новый терминал R, и вы все еще получите старое значение

> Sys.getenv('WFDATA')
[1] "/old/environment/value"
> 

Не уверен, почему R такупрямый как вспомнить старую ценность.Кто-нибудь может предложить способ решить эту проблему?Эта проблема возникает как в сеансе R, так и в файле Rscript.

1 Ответ

0 голосов
/ 27 апреля 2018

Я выяснил источник моей проблемы.Кто-то еще настроил среду R в корневом месте.Таким образом, среда всегда является жестко закодированной ценностью.Я использую Linux, это должно относиться к большинству из них.

in the /etc/R directory
ls
ldpaths  Makeconf  Renviron  Renviron.site  repositories  Rprofile.site

Вы можете установить переменные окружения в Renviron и Renviron.site. Они будут видны всем сеансам R на этой машине.Формат такой же, как и в оболочке.

VARNAME=somevalue

В домашнем каталоге пользователя вы можете перезаписать эти значения, переопределив пары KEY = значение в файле .Renviron.Новые переменные среды могут быть добавлены в этот файл.Я не подтвердил, что R будет изучать и запоминать переменные окружения из оболочки пользователя.Другие могут обновить его позже.

...