You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量加载多个.RData文件并合并为单个data.frame

批量加载合并.RData文件的实现说明

你提供的写法不可行,核心原因

load() 函数的默认返回值是加载到环境中的对象名称的字符向量,并非对象本身的数据,因此直接传入map_dfr只会得到所有对象名的拼接结果,无法完成数据合并。

可行实现方案

方案1:适配「每个.RData文件仅存储1个数据框」的场景(匹配你的当前用法)

library(tidyverse)

list.files(
  path = ".",
  pattern = "\\.RData$", # 正则匹配更严谨,避免匹配到文件名中间带RData的文件
  full.names = TRUE
) %>%
  map_dfr(
    .f = function(x) {
      # 新建临时环境存储加载内容,避免污染全局环境的变量
      temp_env <- new.env()
      load(x, envir = temp_env)
      # 提取临时环境中存储的唯一数据框
      get(ls(temp_env)[1], envir = temp_env)
    }
  )

运行上述代码可直接得到所有.RData文件内数据框按行合并的结果。

方案2:适配「单个.RData文件存储多个同结构数据框」的场景

如果部分.RData内存储了多个需要合并的同结构数据框,可使用以下写法:

library(tidyverse)

list.files(
  path = ".",
  pattern = "\\.RData$",
  full.names = TRUE
) %>%
  map(
    .f = function(x) {
      temp_env <- new.env()
      load(x, envir = temp_env)
      # 提取单文件内所有数据框先合并
      eapply(temp_env, identity) %>% bind_rows()
    }
  ) %>%
  bind_rows()

内容的提问来源于stack exchange,提问作者MYaseen208

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:09:01