以编程方式从 RData 文件集合中提取对象

问题描述

我们在生产环境中工作,将通过 API 调用组装的大型数据集保存为 RData 文件,以保留完整的环境和后续数据摘要。 RData 文件非常大,包含使用标准分析工作流程生成的多个具有相似名称和结构的数据框对象。

我正在寻找一种干净的方法来遍历 RData 文件的集合,从每个文件提取一个命名对象,然后组合成一个 AllCohorts 数据框进行分析。

解决方法

我们找到了一个有用的解决方案。

  1. 提取函数
 extractorRData <- function(file,object) {
      #' Function for extracting an object from a .RData file created by R's save() command
      #' Inputs: RData file,object name
      E <- new.env()
      load(file=file,envir=E)
      return(get(object,envir=E,inherits=F))
    }
  1. 从 RData 文件“priorRun.RData”中提取数据框“allParams”,无需加载整个环境。
      allParams.prior <- extractorRData("priorRun.RData","allParams")

事实证明,这种方法既快速又灵活。适用于重建速度较慢的大型数据帧。