如何将RData文件内容加载到tibble中用于后续数据分析
方案1:兼容现有RData文件的读取方法
核心思路是将load读取的对象导入临时隔离环境,再从环境中提取目标对象返回,修改代码如下:
ndf <- tibble(path = list.files("tmp", full.names = TRUE), file = basename(path), a = purrr::map(path, function(path) { # 新建空临时环境,避免污染全局环境 temp_env <- new.env() # 将RData内的对象加载到临时环境中 load(path, envir = temp_env) # 返回临时环境中存储的目标数据对象 return(temp_env$a) }))
执行上述代码后,你原本写的后续分析逻辑可以直接正常运行。
方案2:更推荐的单对象存储读取方案
如果是自主生成的单对象数据文件,更建议使用saveRDS/readRDS组合,不需要处理环境逻辑,代码更简洁易维护:
存储阶段修改:
for (filename in c("file1", "file2", "file3")) { a = tibble(letters = sample(LETTERS, 10), numbers = sample(1:100, 10)) # 用saveRDS存储单对象,常规使用.rds作为文件后缀区分 saveRDS(a, file = paste0("tmp/", filename, ".rds")) }
读取阶段代码:
ndf <- tibble(path = list.files("tmp", pattern = "\\.rds$", full.names = TRUE), file = basename(path), a = purrr::map(path, readRDS))
内容的提问来源于stack exchange,提问作者mzuba
相关产品推荐
相关产品推荐

