R默认会在关闭时提示是否需要保存工作空间,如果选择“是”就会保存到.RData文件里,并且下次启动R的时候如果发现.RData文件存在则会自动加载。优点在于会让你觉得这是从“上次结束的地方继续开始”,因为之前算好的东西都在那里。
但实际上这样子有非常大的潜在问题:首先,这意味着你的工作空间并不“干净”,你启动R之后运行的代码结果可能受到了加载的工作空间的影响(比如一个在你代码里没有定义的变量a,却恰好在.RData里有你之前哪个项目里保存了的a变量)。这意味着你的代码结果是难以复现的——别人想重跑你的代码重现你的结果还需要跟你要一份.RData文件?
顺着这个思路想下去,其实你自己也不能保证能够复现你的代码结果,因为这次退出之后你又保存了一下.RData文件,覆盖了曾经那个文件——你自己都回不到曾经的跑出结果的那个状态了。
保存.RData的另一个问题在于你的不同项目、不同时期、不同目的的变量结果都存在一个.RData里面,除了前面说的带来混乱,影响结果的可重复性之外,另一个问题就是文件大小会越来越大。例如某次计算你保存了一个中间变量,是一个高维矩阵,占用内存和硬盘空间都很大,而且跑到最后忘了删除这个中间变量,于是它就一直存在在你的.RData里。
进行数据分析,代码才是核心,有代码就可以重现出分析的结果,所以代码都是要好好保存好好注释的。而如果一些关键的计算结果,或者耗费时间很长的计算结果,就可以用RData文件保存下来,但是这个保存,往往也应该自己好好对结果文件命名,添加文档,让人知道保存的到底是什么。至于R自己默认的.RData
工作空间,最好选择删掉,并设置默认不选择保存工作空间。