Когда я выхожу из интерактивной оболочки R, она каждый раз отображает раздражающую подсказку:
> > Сохранить изображение рабочего пространства? [д / н / с]: н
Я всегда отвечаю «нет», потому что, если бы я хотел сохранить свою работу, я бы сделал это перед попыткой выхода.
Как избавиться от подсказки?
Примечание: см. ?save.image
r
read-eval-print-loop
Улидтко
источник
источник
R --vanilla
q()
функцию в .Rprofie: stackoverflow.com/a/13043239/180892Ответы:
Вы можете передать
--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
опция.источник
R --vanilla
для объединенияCombine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ
.Вы можете выйти из запроса « Сохранить изображение рабочего пространства? » С помощью 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
, поэтому нет подсказки независимо от того, какой вариант используетсяисточник
Воспользуйтесь преимуществами обеих стратегий, предложенных пользователями 1 и 2 :
По умолчанию не сохранять, добавив следующую строку в ваш ~ / .bashrc:
alias R='R --no-save'
Но дайте себе простой способ сэкономить при выходе, добавив это в ~ / .Rprofile:
qs <- function(save="yes") { q(save=save)}
Итак, теперь
q()
выйдет без сохранения или запроса, ноqs()
сохранится и выйдет (также без запроса)источник
wq <- function() { q(save="yes")}
зеркало vi. (также, если вы пишете функцию перезаписи, почему бы не заставить ее отправлять фиксированный аргумент)Вы можете легко добавить
qq()
функцию в файл .Rprofileqq <- function(save="no") { q(save=save)}
Я думал, что опция сохранения была доступна с опциями, но, видимо, ответ Джошуа лучше всего.
источник
Если, как и я, ввод всей пары скобок кажется слишком большим усилием для выхода из ответа, вы можете попробовать следующее:
exit <- structure(list(), class = "exit_command") print.exit_command <- function(...) { q("no") # exit without saving }
Это создает новый класс, который заставляет R выйти при попытке распечатать указанный класс. В результате, если вы запустите
exit
R repl, все завершится (потому что он пытается его распечатать).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()
.источник
/usr/bin
- и настоятельно не рекомендую вам делать это. Это системная зона, «посторонний персонал запрещен»./usr
роботов (я имею в виду менеджеров пакетов), поскольку они уже управляют этой областью. Есть способы не мешать. В противном случае вы целенаправленно ищете приключений.