使用 for 循环将数据帧保存为 .Rdata 文件

Saving dataframes as .Rdata files using a for loop

我正在尝试将一堆数据帧保存为 .RData 文件。现在我是这样处理的:

save(Dataset_1, file = "Hypothesis1/Dataset1.RData")
save(Dataset_2, file = "Hypothesis1/Dataset2.RData")
save(Dataset_3, file = "Hypothesis1/Dataset3.RData")

这可行,但我想使用 for 循环保存这些数据帧。我在想这样的事情:

for (i in 1:11){
  save(paste0("Dataset_",i), file = "paste0("Hypothesis1/Dataset",i, ".RData")" 
}

不幸的是,这似乎行不通,有人知道为什么会这样吗?

您需要在 save() 之外创建数据集的名称,因为它会将第一个参数评估为字符或符号,并且不会评估函数。

此外,您需要去掉第二个 paste0 周围的引号并关闭 save() 的括号,这看起来像是打字错误。

for (i in 1:11){
    dbname <- paste0("Dataset_",i)
  save(dbname, file = paste0("Hypothesis1/Dataset",i, ".RData"))
}

更好的方法是使用 apply 函数,使用 ls 列出您的数据集名称,并使用 list = ... 参数将它们作为字符传递给 save

lapply(ls(pattern="Dataset[0-9]+"), function(x) save(list = x, file = paste0("Hypothesis1/",x,".RData")))