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

时间:2015-07-08 14:57:26

标签: r save workspace

我在一个环境中有几个data.frames,我想保存到单独的.RData文件中。是否有能够保存到整个工作区的功能?

我通常只使用以下功能执行此操作:

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

但有没有办法可以一次性保存所有data.frames?

3 个答案:

答案 0 :(得分:8)

创建一堆不同的文件并不是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")

答案 1 :(得分:1)

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

save.image("willcontainworkspace.RData")

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

答案 2 :(得分:0)

与@ MrFlick的方法类似,你可以这样做:

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