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

R语言匹配两个数据框相同值并从另一数据框添加对应字段

R语言实现两个数据框匹配新增字段的方案

完全不需要自行编写循环,R内置及第三方包中已经有高度优化的表连接函数可以直接实现需求,以下是两种常用实现方式:

方式1:基础R(无需安装额外包)

使用基础R自带的merge()函数即可完成左匹配,保留df1的全部行,匹配到的Code对应的Code_name会自动填充:

# 执行左连接,匹配键为Code字段
result_df <- merge(df1, df2, by = "Code", all.x = TRUE)
# 如果需要保持df1原来的行顺序,可以再加一行
result_df <- result_df[order(result_df$Num), ]

参数说明:

  • by = "Code":指定两个数据框用于匹配的共同键字段
  • all.x = TRUE:保留左侧表df1的所有观测行,未匹配到的Code对应的Code_name会填充为NA

方式2:tidyverse生态(代码更直观易读)

如果已经安装tidyverse/dplyr包,使用left_join()函数会更简洁,默认就会保留df1的原有行顺序:

# 加载dplyr包,如果没装先运行 install.packages("dplyr")
library(dplyr)
result_df <- left_join(df1, df2, by = "Code")

注意事项

如果匹配结果全是NA,优先检查两个数据框的Code字段类型是否一致,比如一个是数值型、一个是字符型会导致匹配失败,可以手动统一类型:

# 统一转为字符型示例
df1$Code <- as.character(df1$Code)
df2$Code <- as.character(df2$Code)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:15:03