在R中保存工作区的问题

3
我刚开始接触R,但慢慢掌握了基础知识。然而,我在保存和打开我的工作时遇到了困难。我将文件保存为.RData文件,但是在Windows资源管理器中,该文件只显示为“文件”。当我尝试将工作区加载到R中时,这些文件仅在我将“文件类型”从“.RData”更改为“所有文件”时才会显示,并且它们无法被打开。我做错了什么?
另外,如果这种方法能正常工作的话,是否类似于打开已保存的Word文档 - 即一切都与我保存时一样,我可以继续我的工作?
非常感谢。

你是如何保存的?你使用默认的R GUI还是RStudio?"拒绝"打开文件具体指什么?你是如何尝试打开它们的?请记住,R是一种编程语言,而不是文档编辑器。 - MrFlick
通过“保存工作区”并使用默认的R GUI进行保存。我试图使用“打开工作区”来打开它们,但当我尝试打开文件时,它只会出现一个空白的记事本样式的东西...当我尝试打开工作区时,它们不再是.RData文件,而是“文件”。 - James
2个回答

3
在R中,您可以保存两种类型的文件,.RData被称为工作区,其中包含您在会话中创建的所有对象(数据)。您可以通过在控制台中键入ls()来检查工作区中有什么。另一种类型是.R文件,它是一个简单的脚本文件,用于保存您的代码。
如果您正在使用默认的R GUI,则将.RData文件保存在您的工作目录中(即您的输入数据文件所在的位置)有助于并从那里通过双击.RData图标加载您的R会话。然后从R GUI中打开您的脚本文件(.R)。通常情况下,除非计算密集型并且运行脚本文件中的代码需要几分钟或更长时间,否则我不会在我的工作区中保存任何东西。
还要确保在首次保存工作区文件时,在文件名中保留文件结尾(.RData)。它通常以蓝色突出显示,一旦您键入文件名,它就会被删除。保留它将用R图标标识工作区文件。如果没有.RData结尾保存它,您也可以通过单击保存的工作区文件并将.RData添加到文件名中来手动添加它。当保存脚本文件时,您实际上必须自己添加结尾(.R)。
所以,我写所有这些的原因是因为您说您点击了“打开工作区”,但据我所知它不存在。它被称为“加载工作区”。您是否尝试通过选择“打开脚本”来打开.RData文件?
我会在评论部分问我的最后一段话,但是我没有足够的声望来发表评论。如果这不能解决您的问题,请告诉我,我将删除答案。

感谢您的回复。对不起,我想说“加载工作区”而不是“打开工作区”。问题似乎源于我将工作区保存为.RData文件,但它立即变成了一个“文件”。当我尝试从Windows资源管理器中打开这些文件时,它会问我“您想如何打开此文件?”并给出一个程序列表。如果我选择使用R GUI打开,它会显示“ARGUMENT '(file location)'_ignored_”。 - James
好的,我可以通过保存我的工作区时使用 .RData 扩展名来复现这个错误。然后我的工作区文件看起来就像一个“文件”。当我双击它时,我可以导航到 R GUI 中打开它,它会给我和你得到的相同的错误。但是当我点击“确定”时,R 仍然会启动。您能确认一下吗?所以对我来说,有两种方法可以使其工作。 1) 确保在保存工作区时保留 .RData 扩展名,或 2) 单击看起来像“文件”的工作区文件,手动向文件名添加 .RData 扩展名。然后点击“确定”并“用 R 打开”。 - Stefan
点击“确定”后,R 将启动,但只会打开一个空白工作区。在保存工作区时似乎不可能保留 .RData 扩展名,它会立即变成‘文件’。但是编辑名称并添加 .RData 确实似乎有所帮助。虽然它没有显示我之前的所有代码/计算等(除了介绍内容和“[之前保存的工作区已恢复]”之外),但我可以继续之前的工作。这是正常情况吗?还是我应该能够看到上一次会话中的所有代码?顺便谢谢您的帮助。 - James
这是个好消息,你已经让它工作了。但是工作区文件(.RData)不会显示你的代码或计算过程。它只是一个可以保存代码和计算结果(即数据)的地方。相反,你应该保存一个R脚本文件(.R),这才是你实际的工作文档。在那里你可以保存代码并做笔记等。另外,我建议你切换到R Studio,它更加用户友好。如果我的回答对你有帮助,你可能想把它作为你问题的答案接受。 - Stefan
1
太棒了,现在一切都清楚了。我意识到,当我更改名称时,没有确保在文件名的末尾添加.RData会导致问题。感谢您的帮助和解释,我会接受这个答案。 - James

1

我正在编写一个 R 代码,用于保存工作环境: 假设我们有一个名为 x 的对象,我们想将其保存在 D 盘,并且我想将其命名为 zian。

x<-c(1,2,3,4)
write.table(x,"D:\\zian.txt")
  #here I saves a workspace as a txt file
   write.csv(x,"D:\\zian.csv")
  #here I save a workspace as a csv file 
   #or
   save(object,filename="D:\\2nd")
   #here you have a file in D drive name as 2nd and you want to save this object in this file.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接