Как отключить "Сохранить изображение рабочей области?" подскажите в R?
Когда я выхожу из интерактивной оболочки R, она каждый раз отображает раздражающее приглашение:
> > Сохранить изображение рабочего пространства? [y/n/c]: n
Я всегда отвечаю "нет", потому что, если бы я хотел сохранить свою работу, я бы сделал это, прежде чем пытаться выйти.
Как избавиться от подсказки?
Примечание: см.?save.image
12 ответов
Вы можете передать --no-save
аргумент командной строки при запуске R, или вы можете переопределить q
функция:
utils::assignInNamespace(
"q",
function(save = "no", status = 0, runLast = TRUE)
{
.Internal(quit(save, status, runLast))
},
"base"
)
Поместите приведенный выше код в свой.Rprofile, чтобы он запускался при каждом сеансе.
Еще не нашли самое простое решение для Linux:)
В Ubuntu добавьте следующую строку в ваш ~/.bashrc
:
alias R='R --no-save'
Каждый раз, когда вы запускаете консоль R с R
Пройдет --no-save
вариант.
Вы можете выйти из окна " Сохранить изображение рабочего пространства? ", Нажав Ctrl+D.
Таким образом, если вы дважды нажмете Ctrl+D в интерактивном режиме R, вы выйдете из R без сохранения рабочего пространства.
(Проверено на Linux и OS X)
Если вы используете Rgui, щелкните правой кнопкой мыши на значке, который вы используете для запуска R, выберите "Свойства" и добавьте --no-save к команде, которая запускает R.
(из http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html)
Если вы используете редактор, отличный от Rgui, вы должны передать --no-save в командную строку R при запуске R
Параметр перезаписи по умолчанию для сохранения аргумента функции выхода
formals(quit)$save <- formals(q)$save <- "no"
поместите эту строку в.Rprofile
Редактировать: добавлено q
, поэтому нет подсказки, независимо от того, какой вариант используется
Если вы используете R Studio IDE, вы можете сделать это, переустановив глобальный параметр.
Перейдите в Инструменты -> Глобальные параметры -> R General (Basic).
- Снимите флажок «Восстановить .RData в рабочей области при запуске».
- Сохранить изображение рабочей области в .RData при выходе - выберите «Никогда»
Нажмите «Применить», а затем «ОК».
Я написал подробный пост по этой теме здесь
В этом посте я обратился к вопросу «следует или не следует» сохранять изображение рабочего пространства? Я написал подробный ответ на следующие вопросы в комментариях (обязательно прочтите их все):
- Как установить никогда не сохранять изображение рабочего пространства?
- что на самом деле означает, когда говорится «сохранить изображение рабочего пространства».
- Почему вам (почти всегда) не следует сохранять изображение рабочего пространства?
- Когда мне следует сохранять изображение рабочего пространства?
- Что мне делать, если изображение рабочего пространства не сохраняется? Какие лучшие практики?
В некоторых других сообщениях я обсуждал, что может быть полезно для пользователей R:
«Что такое воспроизводимая работа?» https://www.linkedin.com/feed/update/urn:li:activity:6789770117715640320
Почему бы вам не использовать rm(list= ls ())? Рекомендации по R https://www.linkedin.com/feed/update/urn:li:activity:6785805481131683840
Рабочий каталог https://www.linkedin.com/posts/drnishaarora_2-set-working-directory-r-studio-activity-6785423883408297984-NAoH
Получите лучшее из обеих стратегий, данных mreq и 42-:
По умолчанию не сохранять, добавив следующую строку в ~/.bashrc:
alias R='R --no-save'
Но дайте себе простой способ сэкономить при выходе, добавив это в ~/.Rprofile:
qs <- function(save="yes") { q(save=save)}
А сейчас q()
выходит без сохранения (или запроса), но qs()
сохранит и выйдет (также без запроса)
Вы можете легко добавить qq()
функция в файл.Rprofile
qq <- function(save="no") { q(save=save)}
Я думал, что опция сохранения была доступна с опциями, но, очевидно, ответ Джошуа - лучший.
Если, как и я, ввод целой пары скобок кажется слишком большим усилием для выхода из repl, вы можете попробовать это:
exit <- structure(list(), class = "exit_command")
print.exit_command <- function(...) {
q("no") # exit without saving
}
Это создает новый класс, который вызывает выход R при попытке напечатать указанный класс. В результате, если вы запустите exit
в ответе R все будет завершено (потому что оно пытается его напечатать).
NB: Вы можете добавить его в ~/.Rprofile
загружать в начале каждой сессии.
Как насчет того, чтобы просто избежать приглашения, набрав q('no')
вместо
Вы можете создать псевдоним для команды R:
используя bash: alias R='R --no-save'
используя csh: alias R 'R --no-save'
Если вы чувствуете себя достаточно предприимчивым, вы также можете отредактировать startup
раздел в конце /usr/bin/R
т.е. добавить --no-save
на вызовы exec. Однако, если вам нужно сохранить рабочее пространство, не забудьте save.image()
,