当我退出交互式R shell时,每次都会显示一个恼人的提示:
> > Save workspace image? [y/n/c]: n
我在尝试退出之前这样做了.765509_ d .
如何摆脱提示?
注意:请参阅?save.image
您可以在启动R时传递--no-save命令行参数,也可以覆盖 q 函数:
q
utils::assignInNamespace( "q", function(save = "no", status = 0, runLast = TRUE) { .Internal(quit(save, status, runLast)) }, "base" )
将上面的代码放在.Rprofile中,这样它就会在启动时为每个会话运行 .
还没找到最简单的Linux解决方案:)
在ubuntu上将以下行添加到 ~/.bashrc :
~/.bashrc
alias R='R --no-save'
每次使用 R 启动R控制台时,都会传递 --no-save 选项 .
R
--no-save
你可以逃避“保存工作区图像?”用Ctrl D提示
因此,如果在交互式R中执行两次Ctrl D,则退出R而不保存工作区 .
(在Linux和OS X上测试过)
如果您使用的是Rgui,请右键单击用于启动R的图标,然后单击“属性”,并将--no-save添加到启动R的命令中 .
(来自http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html)
如果您使用的是与Rgui不同的编辑器,则必须在启动R时将--no-save传递给R命令行
您可以轻松地将 qq() 函数添加到.Rprofile文件中
qq()
qq <- function(save="no") { q(save=save)}
我认为保存选项可以选择,但显然约书亚的答案是最好的 .
充分利用mreq和BondedDust给出的两种策略:
通过在〜/ .bashrc中添加以下行来默认为不保存:
但是通过将此添加到〜/ .Rprofile,给自己一个简单的方法来保存退出:
qs <- function(save="yes") { q(save=save)}
所以现在 q() 退出而没有保存(或提示)但 qs() 将保存并退出(也没有提示)
q()
qs()
覆盖退出函数的save参数的默认选项
formals(quit)$save <- formals(q)$save <- "no"
把这一行放在.Rprofile中
编辑:添加了 q ,因此无论使用哪种变体都没有提示
如何通过输入 q('no') 来避免提示
q('no')
如果像我一样输入一对括号似乎太费力退出repl你可以试试这个:
exit <- structure(list(), class = "exit_command") print.exit_command <- function(...) { q("no") # exit without saving }
这会创建一个新类,在尝试打印所述类时会导致R退出 . 结果是,如果你在R repl中运行 exit ,整个事情将退出(因为它试图打印它) .
exit
注意:您可以将其添加到 ~/.Rprofile 以在每个会话开始时加载 .
~/.Rprofile
您可以为R命令创建别名:
using bash : alias R='R --no-save'
using csh: alias R 'R --no-save'
alias R 'R --no-save'
如果你有足够的冒险精神,你也可以编辑 /usr/bin/R 末尾的 startup 部分,即将 --no-save 添加到exec调用中 . 但是,如果您需要保存工作区,请记住 save.image() .
/usr/bin/R
startup
save.image()
11 回答
您可以在启动R时传递--no-save命令行参数,也可以覆盖
q
函数:将上面的代码放在.Rprofile中,这样它就会在启动时为每个会话运行 .
还没找到最简单的Linux解决方案:)
在ubuntu上将以下行添加到
~/.bashrc
:每次使用
R
启动R控制台时,都会传递--no-save
选项 .你可以逃避“保存工作区图像?”用Ctrl D提示
因此,如果在交互式R中执行两次Ctrl D,则退出R而不保存工作区 .
(在Linux和OS X上测试过)
如果您使用的是Rgui,请右键单击用于启动R的图标,然后单击“属性”,并将--no-save添加到启动R的命令中 .
(来自http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html)
如果您使用的是与Rgui不同的编辑器,则必须在启动R时将--no-save传递给R命令行
您可以轻松地将
qq()
函数添加到.Rprofile文件中我认为保存选项可以选择,但显然约书亚的答案是最好的 .
充分利用mreq和BondedDust给出的两种策略:
通过在〜/ .bashrc中添加以下行来默认为不保存:
但是通过将此添加到〜/ .Rprofile,给自己一个简单的方法来保存退出:
所以现在
q()
退出而没有保存(或提示)但qs()
将保存并退出(也没有提示)覆盖退出函数的save参数的默认选项
把这一行放在.Rprofile中
编辑:添加了
q
,因此无论使用哪种变体都没有提示如何通过输入
q('no')
来避免提示如果像我一样输入一对括号似乎太费力退出repl你可以试试这个:
这会创建一个新类,在尝试打印所述类时会导致R退出 . 结果是,如果你在R repl中运行
exit
,整个事情将退出(因为它试图打印它) .注意:您可以将其添加到
~/.Rprofile
以在每个会话开始时加载 .您可以为R命令创建别名:
using bash :
alias R='R --no-save'
using csh:
alias R 'R --no-save'
如果你有足够的冒险精神,你也可以编辑
/usr/bin/R
末尾的startup
部分,即将--no-save
添加到exec调用中 . 但是,如果您需要保存工作区,请记住save.image()
.