用 R 迭代地保存 .Rds data.frame 对象
Posted
技术标签:
【中文标题】用 R 迭代地保存 .Rds data.frame 对象【英文标题】:Iteratively save .Rds data.frame objects with R 【发布时间】:2021-09-22 08:06:46 【问题描述】:我需要在驱动器上反复保存 data.frame
对象。
here 已经发布了类似的问题,但在我看来,最终还是错过了answer,因为:
-
问题的作者正确要求将
data.frame
保存为.Rds
文件,但最终编写了关于.Rda
的代码;
接受答案的作者使用save()
,而应该使用saveRDS()
。否则,命令readRDS
将不会读取相应的文件。
我的问题:
我需要什么代码来迭代保存.Rds
文件?
【问题讨论】:
【参考方案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://***.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://***.com/a/8345810/2950721
# https://***.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【讨论】:
以上是关于用 R 迭代地保存 .Rds data.frame 对象的主要内容,如果未能解决你的问题,请参考以下文章