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

如何使用R语言的merge函数合并多份Excel文件匹配缺失批次号

R中使用merge函数匹配批次号操作指南

1 前期准备:读取所有Excel文件

首先加载读取Excel所需的包:

# 首次使用先安装
install.packages("readxl")
# 加载包
library(readxl)

依次读取4份文件:

# 读取完整ID-批次对应表,替换为你自己的文件路径
df_master <- read_excel("你的完整对应表文件路径.xlsx")
# 依次读取3份缺失批次号的文件,替换为你自己的文件路径
df1 <- read_excel("第一份缺失批次的文件路径.xlsx")
df2 <- read_excel("第二份缺失批次的文件路径.xlsx")
df3 <- read_excel("第三份缺失批次的文件路径.xlsx")

操作前确认:所有表中存储ID的列名完全一致(比如都命名为ID),如果不一致需要先修改为相同列名

2 使用merge函数匹配批次号

merge函数核心逻辑是基于共同列(这里就是ID列),把两个表的信息合并,我们需要保留所有缺失批次表的原有行,只补充批次号信息,参数设置如下:

参数含义
x要补充批次号的目标表(即3份缺失批次的表)
y存储完整ID-批次对应关系的主表
by两个表用于匹配的共同列名
all.x设为TRUE,保留x表的所有行,避免原数据丢失

匹配示例代码

# 给第一份表匹配批次号
df1_result <- merge(x = df1, y = df_master, by = "ID", all.x = TRUE)
# 给第二份表匹配批次号
df2_result <- merge(x = df2, y = df_master, by = "ID", all.x = TRUE)
# 给第三份表匹配批次号
df3_result <- merge(x = df3, y = df_master, by = "ID", all.x = TRUE)

3 常见问题处理

  • 匹配后出现重复行:先检查主表df_master是否存在重复ID,一个ID对应多个批次的情况下会生成多条匹配结果
  • 匹配后批次号全为NA:说明两个表的ID列格式不一致(比如一个是数字格式、一个是文本格式),统一格式后重新匹配即可,示例:
# 把两个表的ID都统一为字符格式
df1$ID <- as.character(df1$ID)
df_master$ID <- as.character(df_master$ID)
  • 需要合并三个匹配完成的表:如果三个表列结构完全一致,直接用rbind合并即可:
total_result <- rbind(df1_result, df2_result, df3_result)

4 导出结果

可以用writexl包导出为Excel文件:

# 首次使用先安装
install.packages("writexl")
library(writexl)
# 单个导出
write_xlsx(df1_result, "第一份表匹配完成.xlsx")
# 导出合并后的总表
write_xlsx(total_result, "所有数据匹配完成总表.xlsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:45:03