用 R 迭代保存 .Rds data.frame 个对象

Iteratively save .Rds data.frame objects with R

我需要在驱动器上迭代保存 data.frame 个对象。

类似的问题已经发布 but ultimately, and to my point of view, missed the 因为:

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

我的问题:

下面是一段希望可重现的代码(带注释),对我来说效果很好(注释中的链接是已找到适合情况的代码):

# 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
# 
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
# 
# 
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
  • OS: macOS Catalina 版本 10.15.7