【问题标题】:Iteratively save .Rds data.frame objects with R用 R 迭代地保存 .Rds data.frame 对象
【发布时间】:2021-09-22 08:06:46
【问题描述】:

我需要在驱动器上反复保存 data.frame 对象。

here 已经发布了类似的问题,但在我看来,最终还是错过了answer,因为:

  1. 问题的作者正确要求将data.frame 保存为.Rds 文件,但最终编写了关于.Rda 的代码;
  2. 接受答案的作者使用save(),而应该使用saveRDS()。否则,命令readRDS 将不会读取相应的文件。

我的问题:

  • 我需要什么代码来迭代保存.Rds 文件?

【问题讨论】:

    标签: r dataframe loops save


    【解决方案1】:

    下面是一段对我来说非常有效的、希望可重现的代码(使用 cmets)(cmets 中的链接是发现代码适应情况的地方):

    # 1. Load some data from the Internet and close connections
    library(quantmod)
    tickers <- c("SHOP", "MPNGF", "BABA", "JD")
    getSymbols.yahoo(tickers, auto.assign = TRUE, env = globalenv())
    closeAllConnections()
    
    
    # 2. Find all loaded xts files
    xtsObjects <- names(which(unlist(eapply(.GlobalEnv, is.xts))))
    
    
    # 3. Iteratively convert found xts files under 2. into data.frames
    # https://stackoverflow.com/a/69246047/2950721
    library(zoo)
    for (i in seq_along(xtsObjects)) {
      assign(xtsObjects[i], fortify.zoo(get(xtsObjects[i])))
    }
    
    # 4. Iteratively save converted data.frame objects as .Rds files
    # https://stackoverflow.com/a/8345810/2950721
    # https://stackoverflow.com/a/69246047/2950721
    library(fs)
    rdsFilesFolder <- path("rdsFiles")
    saveRDSobjects <- paste0("./", rdsFilesFolder, "/", xtsObjects, ".Rds")
    
    for (i in seq_along(xtsObjects)) {
      saveRDS(get(xtsObjects[i]), file = saveRDSobjects[i])
    }
    

    使用的系统:

    • R 版本:4.1.1 (2021-08-10)
    • RStudio 版本:1.4.1717
    • 操作系统:macOS Catalina 版本 10.15.7

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2013-01-24
      相关资源
      最近更新 更多