【问题标题】:R: Save all data.frames in workspace to separate .RData filesR:将工作区中的所有 data.frames 保存到单独的 .RData 文件中
【发布时间】:2015-09-26 14:00:38
【问题描述】:

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

我通常只使用以下函数:

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

但是有没有一种方法可以一次单独保存所有 data.frames?

【问题讨论】:

    标签: r save workspace


    【解决方案1】:

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

    【讨论】:

    • saveRDS存储单个数据帧不是更方便吗?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      save.image("willcontainworkspace.RData")
      

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

      【讨论】:

      • OP 有一个环境中的数据框列表,并希望为每个数据框提供一个单独的 Rdata 文件。这并不能解决这个问题。
      • @PaulHiemstra 是的,但他们也说“有没有可以保存到整个工作区的功能?”。我并不是说我的正是他们想要的,但它确实回答了他们的一个问题。
      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多