当我退出交互式 R shell 时,它每次都会显示一个烦人的提示:
> > 保存工作区图像?[是/否/c]:n
我总是对它回答“不”,因为如果我想保存我的工作,我会在尝试退出之前这样做。
如何摆脱提示?
注:见?save.image
当我退出交互式 R shell 时,它每次都会显示一个烦人的提示:
> > 保存工作区图像?[是/否/c]:n
我总是对它回答“不”,因为如果我想保存我的工作,我会在尝试退出之前这样做。
如何摆脱提示?
注:见?save.image
您可以在启动 R 时传递--no-save
命令行参数,也可以覆盖该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 不同,则必须在启动 R 时将 --no-save 传递给 R 命令行
覆盖退出函数的保存参数的默认选项
formals(quit)$save <- formals(q)$save <- "no"
将此行放入 .Rprofile
编辑:已添加q
,因此无论使用哪种变体都没有提示
您可以轻松地将qq()
函数添加到 .Rprofile 文件
qq <- function(save="no") { q(save=save)}
我认为保存选项可用于选项,但显然约书亚的答案是最好的。
如何通过键入q('no')
来避免提示
如果像我一样,输入一整对括号似乎要退出 repl 太费力了,你可以试试这个:
exit <- structure(list(), class = "exit_command")
print.exit_command <- function(...) {
q("no") # exit without saving
}
这会创建一个新类,这会导致 R 在尝试打印该类时退出。结果是,如果你exit
在 R repl 中运行,整个事情将退出(因为它试图打印它)。
注意:您可以将其添加到~/.Rprofile
在每个会话开始时加载。
您可以为 R 命令创建别名:
使用 bash:alias R='R --no-save'
使用 csh: alias R 'R --no-save'
如果您使用的是 R Studio IDE,您可以通过重新设置全局选项来完成此操作。
转到工具->全局选项-> R常规(基本)
单击“应用”,然后单击“确定”
在这篇文章中,我已经解决了“我们应该还是不应该”保存工作区图像?我已经在评论中写了以下问题的详细答案(请确保您阅读了所有内容):
在其他一些帖子中,我讨论过可能对 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
如果您有足够的冒险精神,您还可以编辑startup
末尾的部分/usr/bin/R
,即添加--no-save
到 exec 调用中。但是,如果您需要保存工作区,请记住save.image()
.