用 R 迭代保存 .Rds data.frame 个对象
Iteratively save .Rds data.frame objects with R
我需要在驱动器上迭代保存 data.frame
个对象。
类似的问题已经发布 but ultimately, and to my point of view, missed the 因为:
- 问题的作者正确地要求将
data.frame
保存为 .Rds
文件,但最终写了关于 .Rda
; 的代码
- 已接受答案的作者使用
save()
,而本应使用 saveRDS()
。如果不这样做,命令 readRDS
将不会读取相应的文件。
我的问题:
- 为了迭代保存
.Rds
个文件,我需要什么代码?
下面是一段希望可重现的代码(带注释),对我来说效果很好(注释中的链接是已找到适合情况的代码):
# 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
我需要在驱动器上迭代保存 data.frame
个对象。
类似的问题已经发布
- 问题的作者正确地要求将
data.frame
保存为.Rds
文件,但最终写了关于.Rda
; 的代码
- 已接受答案的作者使用
save()
,而本应使用saveRDS()
。如果不这样做,命令readRDS
将不会读取相应的文件。
我的问题:
- 为了迭代保存
.Rds
个文件,我需要什么代码?
下面是一段希望可重现的代码(带注释),对我来说效果很好(注释中的链接是已找到适合情况的代码):
# 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