104

当我退出交互式 R shell 时,它每次都会显示一个烦人的提示:

>
>
保存工作区图像?[是/否/c]:n

我总是对它回答“不”,因为如果我想保存我的工作,我会在尝试退出之前这样做。

如何摆脱提示?


注:见?save.image

4

12 回答 12

83

您可以在启动 R 时传递--no-save命令行参数,也可以覆盖该q函数:

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

将上面的代码放在你的 .Rprofile 中,这样它就会在每个会话的启动时运行。

于 2011-02-14T19:12:27.663 回答
43

还没有找到最简单的 Linux 解决方案 :)

在 ubuntu 上,将以下行添加到您的~/.bashrc:

alias R='R --no-save'

每次使用 启动 R 控制台时R,都会传递该--no-save选项。

于 2013-04-01T09:09:06.140 回答
27

您可以使用 . 转义“保存工作区图像? ”提示Ctrl+D

因此,如果您Ctrl+D在交互式 R 中执行两次,那么您将退出 R 而不保存您的工作区。

(在 Linux 和 OS X 上测试)

于 2012-11-23T18:38:21.313 回答
12

如果您使用的是 Rgui,请右键单击用于启动 R 的图标并单击“属性”,然后将 --no-save 添加到启动 R 的命令中。

(来自http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html

如果您使用的编辑器与 Rgui 不同,则必须在启动 R 时将 --no-save 传递给 R 命令行

于 2011-02-14T19:12:08.013 回答
9

覆盖退出函数的保存参数的默认选项

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

将此行放入 .Rprofile

编辑:已添加q,因此无论使用哪种变体都没有提示

于 2016-07-05T14:49:34.673 回答
8

充分利用用户12给出的两种策略:

默认不保存,将以下行添加到 ~/.bashrc:

alias R='R --no-save'

但是,通过将其添加到 ~/.Rprofile,给自己一个简单的方法来保存退出:

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

所以现在q()将退出而不保存或提示,但qs()会保存并退出(也没有提示)

于 2014-01-16T19:16:57.327 回答
6

您可以轻松地将qq()函数添加到 .Rprofile 文件

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

我认为保存选项可用于选项,但显然约书亚的答案是最好的。

于 2013-06-28T22:29:42.553 回答
3

如何通过键入q('no')来避免提示

于 2011-02-15T00:18:43.290 回答
3

如果像我一样,输入一整对括号似乎要退出 repl 太费力了,你可以试试这个:

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

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

这会创建一个新类,这会导致 R 在尝试打印该类时退出。结果是,如果你exit在 R repl 中运行,整个事情将退出(因为它试图打印它)。

注意:您可以将其添加到~/.Rprofile在每个会话开始时加载。

于 2018-05-29T16:31:58.413 回答
2

您可以为 R 命令创建别名:

使用 bashalias R='R --no-save'

使用 csh: alias R 'R --no-save'

于 2013-06-28T21:23:24.867 回答
2

如果您使用的是 R Studio IDE,您可以通过重新设置全局选项来完成此操作。

转到工具->全局选项-> R常规(基本)

  1. 在启动时取消选中将 .RData 还原到您的工作区
  2. 退出时将工作区图像保存到 .RData - 选择“从不” 请看下面的截图

单击“应用”,然后单击“确定”

我在这里写了一篇关于这个主题的详细文章

在这篇文章中,我已经解决了“我们应该还是不应该”保存工作区图像?我已经在评论中写了以下问题的详细答案(请确保您阅读了所有内容):

  1. 如何设置从不保存工作区图像?
  2. 当它说“保存工作区图像”时,它的真正含义是什么。
  3. 为什么你应该(几乎总是)不保存工作区图像?
  4. 我应该什么时候保存工作区图像?
  5. 如果不保存工作区图像,我该怎么办?最佳实践是什么?

在其他一些帖子中,我讨论过可能对 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

工作目录 https://www.linkedin.com/posts/drnshaarora_2-set-working-directory-r-studio-activity-6785423883408297984-NAoH

于 2021-04-09T06:32:14.687 回答
-4

如果您有足够的冒险精神,您还可以编辑startup末尾的部分/usr/bin/R,即添加--no-save到 exec 调用中。但是,如果您需要保存工作区,请记住save.image().

于 2015-09-11T08:15:29.647 回答