【发布时间】:2012-01-10 20:36:19
【问题描述】:
我在 R 中制作了一个不是很大的 data.frame,但构建起来需要相当长的时间。我想将它保存为一个文件,然后我可以在 R 中再次打开它?
【问题讨论】:
我在 R 中制作了一个不是很大的 data.frame,但构建起来需要相当长的时间。我想将它保存为一个文件,然后我可以在 R 中再次打开它?
【问题讨论】:
有几种方法。一种方法是使用save() 来保存确切的对象。例如对于数据框foo:
save(foo,file="data.Rda")
然后加载它:
load("data.Rda")
您也可以使用write.table() 或类似的方式将表格保存为纯文本,或使用dput() 获取R 代码以重现表格。
【讨论】:
dump,创建的文件将是source()-ed,尽管help(dump) 页面显示save 更“安全”。
dump() 而不是save(),以及write.table() 而不是dump()
save() / load() 会?如果是这样,那也是需要考虑的事情。我通常会处理一些 .csv 文件,一旦将它们放在我喜欢的地方,我更愿意保存它们,这样我就不必每次重新访问我的项目时都重新运行该代码。因此,保留对结构的工作/调整非常重要。
dump() 也保存了结构。 write.table 的好处在于它以许多软件可以导入的方式编写表格。
saveRDS 以保存不带名称的数据框(dhendrickson 对此有答案)。
如果您只保存一个对象(您的数据框),您也可以使用saveRDS。
保存:
saveRDS(foo, file="data.Rda")
然后阅读:
bar <- readRDS(file="data.Rda")
saveRDS和save的区别在于前者只能保存一个对象,加载后对象名称不强制相同。
【讨论】:
如果您有一个名为 df 的数据框,您可以简单地将其导出到同一目录:
write.csv(df, "output.csv", row.names=FALSE, quote=FALSE)
感谢:荷兰 UMCG 的 Peter 和 Ilja。
【讨论】: