RStudio 将代码转换为乱码、冻结并另存为乱码

RStudio converted code to jibberish, froze, and saved as gibberish

提问人:Hack-R 提问时间:6/4/2014 最后编辑:Martijn PietersHack-R 更新时间:12/25/2020 访问量:623

问:

我有一个小而重要的 R 文件,我已经工作了几天。

前几天,我创建了一个包含大约 1,000 个 ID 的列表并将其上传到 SQL Server,今天我使用不同类型的 ID 重复该过程。我经常保存文件,在添加几行并保存后,我运行语句以上传新 ID。sqlSave()

RStudio 立即将我的所有代码转换为乱码并冻结(见屏幕截图)。

enter image description here

让它尝试完成几分钟后,我关闭了 RStudio 并重新打开了它。它自动重新打开了我的无标题文本文件,其中我有一点工作代码,但没有打开我的主代码文件。

当我尝试打开它时,我被告知该文件是 55 兆字节,因此太大而无法打开。事实上,我确认它现在确实是 55MB,当在外部文本编辑器中打开它时,我看到与此 screnshot 相同的胡言乱语。

有希望恢复我的代码吗?

我想一定是内存不足的罪魁祸首。我当时执行的对象和命令并不占用大量资源,但是在几分钟前,我确实从 SQL Server 中检索了一个过大的数据帧。

R SQL-Server-2008 内存 RStudio

评论

6赞 nograpes 6/4/2014
我希望看在你份上,我错了,但我认为你用对象的二进制表示覆盖了你的代码! 可能不会做你认为的那样。它保存 R 对象,而不是 R 脚本文件。你所做的是用对象的二进制表示形式覆盖你的 R 脚本文件。要保存脚本,您只需单击“文件->保存”。要保存对象,您必须将其放在其他文件中。save.image
0赞 Carl Witthoft 6/4/2014
您使用的是什么 SQL 包?也就是说,来自什么包装?(罗德布克?.除非您在调用中指定了一些创造性的东西,例如文件,否则“不应该”有任何方法可以破坏您的数据文件。我不认为你有与你的文件相关的备份(下次你会:-( )sqlSave.RdatasqlSaveR
3赞 Andrie 6/4/2014
@nograpes的假设是有道理的。控制台历史记录显示您已使用。您似乎在脚本文件上编写了数据文件。运气好的话,您已经在 RStudio 中启用了命令历史记录的自动保存,并且在系统中的某个地方,您仍然有一个 .RData 文件。祝你好运。save.image("jive.R")
0赞 Hack-R 6/4/2014
我只希望我用二进制覆盖它......我可以解决这个问题。使用 Cygwin 在 Windows 7 中获取 linux shell,我使用命令 base64 和 hexdump 尝试将其从二进制转换为文本,但它没有产生一个合理的文本文件。Carl:是RODBC。我确实启用了版本控制,但显然当这种情况发生时它也已损坏,我无法查看我之前的提交。
1赞 Gavin Simpson 6/4/2014
@Andrie 这应该是一个文件,不应该,或者 RStudio 在这方面与普通 R 不同吗?.RHistory

答:

1赞 nograpes 6/4/2014 #1

您用以下行的对象的二进制表示形式覆盖了代码:

save.image('jive.R')

save.image保存 R 对象,而不是 R 脚本文件。要保存脚本,您只需单击“文件->保存”。要保存对象,您必须将其放在其他文件中。

评论

0赞 Hack-R 6/4/2014
谢谢,nograpes。我确实觉得自己很傻。这只是一个错别字,但真是错别字!