【问题标题】:Programmatically extract an object from collection of RData files以编程方式从 RData 文件集合中提取对象
【发布时间】:2021-05-03 22:32:14
【问题描述】:
我们在生产环境中工作,通过 API 调用组装的大型数据集保存为 RData 文件,以保留完整的环境和后续数据摘要。 RData 文件非常大,包含多个使用标准分析工作流生成的具有相似名称和结构的数据框对象。
我正在寻找一种简洁的方法来遍历 RData 文件的集合,从每个文件中提取一个命名对象,然后组装成一个 AllCohorts 数据框进行分析。
【问题讨论】:
标签:
r
production-environment
rdata
【解决方案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))
}
- 从 RData 文件“priorRun.RData”中提取数据框“allParams”而不加载整个环境。
allParams.prior <- extractorRData("priorRun.RData", "allParams")
事实证明,这种方法既快速又灵活。对于重建速度较慢的大型数据帧很有用。