【问题标题】:How to save a data.frame in R?如何在 R 中保存 data.frame?
【发布时间】:2012-01-10 20:36:19
【问题描述】:

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

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    有几种方法。一种方法是使用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()
    • 我是否更正了 write.table 不会保留诸如设置 0 和 1 列作为一个因素,但 save() / load() 会?如果是这样,那也是需要考虑的事情。我通常会处理一些 .csv 文件,一旦将它们放在我喜欢的地方,我更愿意保存它们,这样我就不必每次重新访问我的项目时都重新运行该代码。因此,保留对结构的工作/调整非常重要。
    • 是的。 dump() 也保存了结构。 write.table 的好处在于它以许多软件可以导入的方式编写表格。
    • 这不仅节省了数据帧。请参阅saveRDS 以保存不带名称的数据框(dhendrickson 对此有答案)。
    【解决方案2】:

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

    saveRDS(foo, file="data.Rda")
    

    然后阅读:

    bar <- readRDS(file="data.Rda")
    

    saveRDSsave的区别在于前者只能保存一个对象,加载后对象名称不强制相同。

    【讨论】:

      【解决方案3】:

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

      write.csv(df, "output.csv", row.names=FALSE, quote=FALSE) 
      

      感谢:荷兰 UMCG 的 Peter 和 Ilja。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-14
        • 1970-01-01
        • 1970-01-01
        • 2021-07-16
        • 2020-10-15
        • 1970-01-01
        • 2014-08-08
        • 1970-01-01
        相关资源
        最近更新 更多