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

如何使用purrr包map系列函数读取并合并三组Excel文件列表

实现方案

核心使用purrr::pmap_dfr完成多列表对应位置的并行迭代,适配你3组文件的合并需求,操作前需确保filesl、filesr、filesv长度完全一致,且相同索引位置的三个文件为需要配对处理的一组。

注意你原有代码中的rbind.data.frame本身不支持by参数,按你的使用场景可以选择以下两种写法:

场景1:按指定列对齐合并三个文件

若你需要按ID/GR/SES/COND四个公共列匹配合并三组数据,使用全连接逻辑的代码如下:

library(purrr)
library(dplyr)
library(readxl)

data <- pmap_dfr(list(filesl, filesr, filesv), function(l_path, r_path, v_path) {
  # 读取同组三个文件
  ldat <- read_excel(l_path)
  rdat <- read_excel(r_path)
  vdat <- read_excel(v_path)
  
  # 按指定公共列逐步合并
  temp_join <- full_join(ldat, rdat, by = c('ID', 'GR', 'SES', 'COND'))
  final_join <- full_join(temp_join, vdat, by = c('ID', 'GR', 'SES', 'COND'))
  return(final_join)
})

场景2:三组文件列结构一致,直接行拼接

如果所有文件的列结构完全相同,仅需要按行堆叠数据,可以简化写法:

data <- pmap_dfr(list(filesl, filesr, filesv), ~ {
  dplyr::bind_rows(read_excel(..1), read_excel(..2), read_excel(..3))
})

pmap中..1对应第一个列表filesl的元素,..2对应第二个列表filesr的元素,..3对应第三个列表filesv的元素,顺序可以根据你的需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:36:03