Rscript - Используя тот же R-файл, R-терминал ведет себя иначе по сравнению с Rstudio - PullRequest
0 голосов
/ 11 ноября 2018

Проблема: Используя тот же R-файл, терминал R ведет себя иначе, чем Rstudio.

При запуске под R-файлом несколько раз, в Rstudio я получаю правильное поведение.

  • Первый запуск [count = 20], остаток выполнения [count = 1].

При запуске одного и того же R-файла несколько раз из терминала, используя [Rscript]:

  • Первый запуск [количество = 20], остаток от [количество = 20].

Разыскиваемое поведение:

Мне нужно, чтобы терминал R вел себя так же, как R studio, создавая счетчик со значением [20], а в остальное время устанавливайте его в значение [1].

Мое окружение:

Ubuntu Linux 18.04

R-studio: 1.1.453

Терминал (Bash 4.4.19, R v.3.4.4)

Содержимое R-файла:

setwd ("/tmp-r") # Set working directory.

# Set [count] to 20 if [count] does not exists.
# Set [count] to 1 if [count] exists.
if (!exists('count')) {
  count <- 20
} else {
  count <- 1
}

save.image() # Save.

1 Ответ

0 голосов
/ 11 ноября 2018

С учетом комментариев я обнаружил 2 проблемы, которые решают проблему. И для минимизированного тестового сценария, который я опубликовал в виде вопроса, и для моего расширенного сценария.

1) В начале добавьте [load ('RData')], поскольку поведение нагрузки у Rstudio и терминала R различается. Rstudio динамически обновляет глобальную среду всякий раз, когда вы отправляете изменения в консоли Rstudio. Терминал R теряет сеанс между вызовами, и для этого терминалу требуется R-файл для запуска с [load ('RData')].

2) Чтобы решить мой расширенный скрипт, я обнаружил, что локальный [.Rprofile] имеет [save.image ('. RData)] в конце скрипта. При удалении этой команды в [.Rprofile] она решает больший скрипт.

...