首页 文章

如何在R中禁用“保存工作区图像?”提示?

提问于
浏览
80

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

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

我在尝试退出之前这样做了.765509_ d .

如何摆脱提示?


注意:请参阅?save.image

11 回答

  • 4

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

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

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

  • 3

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

    在ubuntu上将以下行添加到 ~/.bashrc

    alias R='R --no-save'
    

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

  • 5

    你可以逃避“保存工作区图像?”用Ctrl D提示

    因此,如果在交互式R中执行两次Ctrl D,则退出R而不保存工作区 .

    (在Linux和OS X上测试过)

  • 67

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

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

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

  • 0

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

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

    我认为保存选项可以选择,但显然约书亚的答案是最好的 .

  • 4

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

    通过在〜/ .bashrc中添加以下行来默认为不保存:

    alias R='R --no-save'
    

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

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

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

  • -2

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

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

    把这一行放在.Rprofile中

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

  • 10

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

  • 14

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

    exit <- structure(list(), class = "exit_command")
    
    print.exit_command <- function(...) {
      q("no")  # exit without saving
    }
    

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

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

  • 21

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

    using bashalias R='R --no-save'

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

  • 1

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

相关问题