我意识到我覆盖了一个花了我一些时间来创建的.R文件。是否有可能在我的.RData中看到我运行的命令?我总是将我的文件保存为外部脚本,之前从未使用过.RData文件,所以我真的不知道该怎么做而且害怕永远丢失它。
答案 0 :(得分:10)
您的目录中是否有名为“.Rhistory”的文件?该文件可能隐藏在Linux系统上。
阅读帮助页面?历史
答案 1 :(得分:10)
这不是你问题的直接答案,而是来自 The Pragmatic Programmer 的一些建议,它一次又一次地帮助我避免这样的情况:
始终使用源代码控制
如果一个进程值得记录.R
文件中的步骤所花费的时间,那么它应该受到源代码控制系统的保护。这为您提供了许多重要的好处,其中两个是:
您可以恢复或回放文件,以防止意外删除或修改,一小时后,看起来它们似乎不是一个好主意。
您的工作已在一个或多个位置备份。最好是在不同的计算机上。
如果您以前从未使用过源代码控制,可以使用以下资源:
Git是一个很好的系统,具有分发的优势,使您的文件很难松散。 gitref.org是了解Git的一个重要场所,GitHub为非现场Git存储库提供了很好的托管服务。
Mercurial是另一个优秀的分布式系统。 Joel Spolsky是这个网站的共同创始人之一,他在hginit.com写了一篇优秀的指南。 Bitbucket是托管异地Mercurial存储库的好地方 - 如果您需要控制对工作的访问权限,它们甚至允许无限制的私有存储库。
学习源代码控制毫无疑问是我在编程工具中所做的最有价值的投资。当这种情况第一次出现时,它会自行支付。
答案 2 :(得分:2)
如果您使用的是GNU / Linux发行版,则很可能您的工作目录中已有备份。您所要做的就是使用:
:
ls -a | grep ~$
dir(all.files = TRUE, pattern = "~$")
请注意,仅当您要搜索隐藏文件(以-a
开头)时才需要all.files = TRUE
和.
,否则您可以轻松省略它。
但是你应该使用Git或SVN或其他VCS,正如Sharpie已经建议的那样。我会推荐Git(主要是因为GitHub)。虽然这只是在你举办一个开源项目时才有用,否则你将不得不为GitHub服务付费(我想你想跳过那个,对吗?)
答案 3 :(得分:0)
我相信.RData与运行save.image()
时获得的结果相同 - 它会保存您在键入ls()
时看到的所有内容您可以通过将其拖入R控制台来恢复此操作或者通过运行命令load(".RData")