【问题标题】:Saving workspace image, in R在 R 中保存工作区图像
【发布时间】:2019-08-21 09:19:48
【问题描述】:

在 R 会话结束时关闭 R Studio 时,通过对话框询问我:“将工作区图像保存到 [工作目录]?”

这是什么意思?如果我选择保存工作区图像,它保存在哪里?我总是选择不保存工作区图像,保存它有什么缺点吗?

我查看了 stackoverflow,但没有找到解释问题含义的帖子?我只找到一个关于如何禁用提示的问题(没有简单的答案...):How to disable "Save workspace image?" prompt in R?

【问题讨论】:

标签: r workspace


【解决方案1】:

这是什么意思?

这意味着 R 将您的全局环境(即您的正常工作发生的地方)中的对象列表保存到文件中。当 R 下次加载时,默认情况下会恢复此列表(至少部分恢复 - 在某些情况下它不起作用)。

结果是重新启动 R 不会给你一个干净的状态。相反,你的工作空间里堆满了现有的东西,这通常不是你想要的。然后人们求助于各种黑客来试图清理他们的工作空间。但是这些技巧都不是可靠的,如果您根本不保存/恢复您的工作空间,那么这些技巧都不是必需的。

如果我选择保存工作区图像,它保存在哪里?

R 在您当前的工作目录中创建一个名为 .RData 的(隐藏)文件。

我总是选择不保存工作区图片,保存有什么坏处吗?

优点是,在某些情况下,您可以避免在以后继续工作时重新计算结果。但是,还有其他更好的方法可以实现这一目标。另一方面,在没有干净状态的情况下启动 R 有许多缺点优势:您现在开始的任何新分析都不会在干净的房间里进行,并且在再次执行时将无法重现。

所以您通过保存工作区来做正确的事!这是创建可重现的 R 代码的规则之一。有关更多信息,我推荐 Jenny Bryan 关于将 R 与 Project-oriented workflow 一起使用的文章

但每次都必须手动拒绝保存工作区,这很烦人且容易出错。 You can disable the dialog box in the RStudio options.

【讨论】:

    【解决方案2】:

    工作区将包含您保存的任何对象,例如数据框、矩阵、函数等。

    将它保存到您的工作目录将允许您在下次打开 RStudio 时重新加载它,这样您就可以从上次中断的地方继续。如果您下次可以从脚本中重新创建所有内容并且您的脚本不需要很长时间运行,那么没有真正的缺点。

    【讨论】:

    • “没有真正的劣势”——不,有非常明显的劣势。事实上,普遍的建议是永远不要保存工作空间,因为它 (a) 不必要,并且 (b) 会导致不可重现的状态和难以诊断的错误。
    【解决方案3】:

    我在这里唯一要补充的是,您应该认真考虑,有些人可能正在从事正在进行的项目,即一天无法完成的事情,因此必须保存他们的工作空间图像,以免从头开始。

    我认为,最佳做法是:保存工作区是可以的,但只有在您可以清除整个工作区然后完全重新运行且没有错误时,您的代码才真正有效!

    【讨论】:

    • 保存工作区图像从根本上说是错误的方法,在我能想到的所有情况下都是非常糟糕的建议。首先,您绝对不需要在一天结束时关闭您的项目——让它继续运行!其次,如果您保存了代码(显然应该始终保存),“从头开始”根本不是问题,除非所述代码需要很长时间才能运行。如果是这种情况,则应始终显式保存和恢复中间结果,而不是通过 RStudio 选项,以确保代码可重现。
    • 总之,声称你曾经“必须”保存工作空间绝对是错误的:它从来没有必要。而且,更重要的是,它永远不会比以不同的方式解决问题更好:无论是在我的经验中,还是在大多数(如果不是所有)其他 R 专家的经验中(并且启用该选项永远不会超过该选项产生的实质性问题;甚至RStudio 的作者同意这一点,并且这个考虑不周的选项仍然存在的唯一原因是向后兼容性)。
    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多