R: 将工作空间中的所有 data.frames 保存到单独的 .RData 文件

R: Save all data.frames in workspace to separate .RData files

我在一个环境中有几个 data.frames,我想将它们保存到单独的 .RData 文件中。有没有可以保存到整个工作区的功能?

我通常只使用以下函数来执行此操作:

save(x, file = "xy.RData")

但是有什么方法可以一次单独保存所有 data.frames 吗?

要保存您的工作区,您只需执行以下操作:

save.image("willcontainworkspace.RData")

这会创建一个包含整个工作区的文件,它可能是您想要的,也可能不是您想要的,但您的问题对我来说并不完全清楚。

创建一堆不同的文件并不是 save() 的矢量化方式。在这里使用循环可能更好。首先,获取所有 data.frame 个名字的向量。

dfs<-Filter(function(x) is.data.frame(get(x)) , ls())

现在将每个写入一个文件。

for(d in dfs) {
    save(list=d, file=paste0(d, ".RData"))
}

或者如果您只想将它​​们全部放在一个文件中

save(list=dfs, file="alldfs.RData")

类似于@MrFlick 的方法,您可以这样做:

invisible({
  sapply(ls(envir = .GlobalEnv), function(x) {
    obj <- get(x, envir = .GlobalEnv)
    if (class(obj) == "data.frame") {
      save(obj, file = paste0(x, ".RData"))
    }
  })
})