如何在R中保存data.frame?

Bor*_*lis 130 r dataframe

我在R中创建了一个不太大的data.frame,但是构建需要相当长的时间.我想将它保存为文件,我可以再次在R中打开?

Sac*_*amp 167

有几种方法.一种方法是使用save()保存确切的对象.例如,对于数据框foo:

save(foo,file="data.Rda")
Run Code Online (Sandbox Code Playgroud)

然后加载它:

load("data.Rda")
Run Code Online (Sandbox Code Playgroud)

您还可以使用write.table()或类似的东西以纯文本格式保存表,或dput()获取R代码以重现表.

  • 我总是喜欢以纯文本格式存储数据,所以我更喜欢`dump()`而不是`save()`,而`write.table()`比`dump()` (3认同)
  • 还有 `dump` 并且创建的文件将是 `source()`-ed,尽管 `help(dump)` 页面说 `save` 是“更安全的”。 (2认同)
  • 是.`dump()`也保存了结构.`write.table`的好处在于它以许多软件可以导入的方式编写表. (2认同)
  • 这不仅仅是保存数据帧。请参阅“saveRDS”以保存没有名称的数据帧(dhendrickson 对此有答案)。 (2认同)

小智 83

如果您只保存单个对象(数据框),也可以使用saveRDS.
要保存:

saveRDS(foo, file="data.Rda")
Run Code Online (Sandbox Code Playgroud)

然后阅读:

bar <- readRDS(file="data.Rda")
Run Code Online (Sandbox Code Playgroud)

saveRDS和之间的区别在于save,在前者中只能保存一个对象,并且加载后对象的名称不会强制相同.


小智 6

如果您有一个名为 的数据框df,您可以简单地将其导出到同一目录:

write.csv(df, "output.csv", row.names=FALSE, quote=FALSE) 
Run Code Online (Sandbox Code Playgroud)

致谢:荷兰 UMCG 的 Peter 和 Ilja。