Jak wyłączyć " Zapisz obraz obszaru roboczego?"prompt w R?

Kiedy opuszczam interaktywną powłokę r, wyświetla za każdym razem irytujący monit:

>
>
Save workspace image? [y/n/c]: n

Zawsze odpowiadam "nie", ponieważ gdybym chciał uratować moją pracę, zrobiłbym to przed próbując wyjść.

Jak pozbyć się znaku zachęty?


Uwaga: zobacz ?save.image

Author: ulidtko, 2011-02-14

11 answers

Możesz zdać --no-save argument wiersza poleceń po uruchomieniu R, lub możesz nadpisać funkcję q:

utils::assignInNamespace(
  "q", 
  function(save = "no", status = 0, runLast = TRUE) 
  {
    .Internal(quit(save, status, runLast))
  }, 
  "base"
)

Umieść powyższy kod w swoim .Rprofile więc będzie uruchamiany przy starcie dla każdej sesji.

 65
Author: Joshua Ulrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 15:57:06

Nie znalazłem jeszcze najprostszego linuksowego rozwiązania:)

Na ubuntu Dodaj do swojego ~/.bashrc następujący wiersz:

alias R='R --no-save'

Za każdym razem, gdy uruchomisz konsolę R z R, Zostanie ona przekazana opcji --no-save.

 21
Author: mreq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-01 09:09:06

Można uciec " zapisać obraz obszaru roboczego? " znak zachęty z Ctrl + D .

Tak więc, jeśli wykonasz CTRL+D dwa razy w interaktywnym R, to zakończysz R bez zapisywania przestrzeni roboczej.

(testowane na Linuksie i OS X)

 12
Author: Hugo Ideler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-23 09:19:11

Jeśli używasz Rgui, kliknij prawym przyciskiem myszy ikonę, której używasz do uruchomienia R, kliknij "Properties" i dodaj --no-save do polecenia uruchamiającego R.

(z http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html )

Jeśli używasz innego edytora niż Rgui, musisz przekazać --no-save do linii poleceń R podczas uruchamiania R

 10
Author: Andrie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-14 19:12:08

Możesz łatwo dodać qq() funkcję do .Plik Rprofile

 qq <- function(save="no") { q(save=save)}

Myślałem, że opcja Zapisz jest dostępna z opcjami, ale najwyraźniej odpowiedź Joshuy jest najlepsza.

 5
Author: 42-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-28 22:29:42

Uzyskaj najlepszą z obu strategii podanych przez mreq i BondedDust :

Domyślnie nie zapisuje przez dodanie następującej linii do~/.bashrc:

alias R='R --no-save'

Ale daj sobie łatwy sposób, aby zapisać na wyjściu, dodając to do~/.Rprofile:

qs <- function(save="yes") { q(save=save)}

Więc teraz q() kończy pracę bez zapisywania (lub monitowania), ale qs() zapisze i zamknie (również bez monitu)

 4
Author: flyingfinger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-25 16:56:08

Może po prostu unikniesz zachęty, wpisując q('no') zamiast

 3
Author: Stedy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-15 00:18:43

Zastąp domyślną opcję dla save argument quit function

formals(quit)$save <- formals(q)$save <- "no"

Włóż tę linię .Rprofile

Edit: Dodano q, więc nie ma zachęty bez względu na to, który wariant jest używany

 3
Author: Pafnucy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 13:29:43

Jeśli, tak jak ja, wpisanie całej pary nawiasów wydaje się zbyt dużym wysiłkiem, aby wyjść z repl, możesz spróbować tego:

exit <- structure(list(), class = "exit_command")

print.exit_command <- function(...) {
  q("no")  # exit without saving
}

Tworzy to nową klasę, która powoduje, że r kończy pracę, gdy próbuje ją wydrukować. Wynik jest taki, że jeśli uruchomisz exit w repl R, cała sprawa zakończy się (ponieważ próbuje ją wydrukować).

NB: możesz dodać go do ~/.Rprofile, aby załadować na początku każdej sesji.

 1
Author: snakeoilsales,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-29 16:31:58

Możesz utworzyć alias dla polecenia R:

Korzystanie z bash: alias R='R --no-save'

Korzystanie z csh: alias R 'R --no-save'

 0
Author: wizmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-28 21:48:49

Jeśli czujesz się wystarczająco odważny, możesz również edytować sekcję startup Na końcu /usr/bin/R, tzn. dodać --no-save do wywołań exec. Jeśli jednak chcesz zapisać swój obszar roboczy, pamiętaj o save.image().

 -2
Author: Bijoy J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 08:34:11