How to disable “Save workspace image?” prompt in R?

旧时模样 提交于 2019-11-26 12:08:01

问题


When I exit the interactive R shell, it displays an annoying prompt every time:

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

I\'m always answering \"no\" to it, because if I wished to save my work, I\'d do that before trying to exit.

How to get rid of the prompt?


Note: see ?save.image


回答1:


You can pass the --no-save command line argument when you start R, or you can override the q function:

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

Put the above code in your .Rprofile so it will be run on startup for every session.




回答2:


Haven't found the easiest Linux solution yet :)

On ubuntu add the following line to your ~/.bashrc:

alias R='R --no-save'

Every time you start the R console with R, it will be passed the --no-save option.




回答3:


You can escape the "Save workspace image?" prompt with a Ctrl+D.

Thus, if you do Ctrl+D twice in interactive R, then you exit R without saving your workspace.

(Tested on Linux and OS X)




回答4:


If you are using Rgui, right-click on the icon you use to start R and click on "Properties", and add --no-save to the command that starts R.

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

If you are using a different editor than Rgui, you have to pass --no-save to the R command line when starting R




回答5:


Overwrite default option for save argument of quit function

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

put this line in .Rprofile

Edit: added q, so there is no prompt no matter which variant is used




回答6:


You could easily add a qq() function to the .Rprofile file

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

I thought that the save option was available with options, but apparently Joshua's answer is best.




回答7:


Get the best of both strategies given by mreq and BondedDust:

Default to not save by adding the following line to your ~/.bashrc:

alias R='R --no-save'

But give yourself an easy way to save on exit by adding this to ~/.Rprofile:

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

So now q() quits without saving (or prompting) but qs() will save and quit (also without prompting)




回答8:


How about just avoiding the prompt by typing q('no') instead




回答9:


You can create an alias for the R command:

using bash: alias R='R --no-save'

using csh: alias R 'R --no-save'




回答10:


If, like me, typing out a whole pair of brackets seems like too much effort to exit the repl you can try this:

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

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

This creates a new class, which causes R to exit when attempting to print said class. The upshot being that if you run exit in the R repl, the whole thing will exit (because it tries to print it).

NB: You can add it to ~/.Rprofile to load at the start of every session.




回答11:


If you feel adventurous enough, you could also edit the startup section at the end of /usr/bin/R, i.e. add --no-save to the exec calls. However, if you need to save your workspace, remember to save.image().



来源:https://stackoverflow.com/questions/4996090/how-to-disable-save-workspace-image-prompt-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!