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

如何用R语言通过ID部分匹配,用另一数据框填充目标数据框列

用R实现按ID匹配并保留全部行的填充方法

你需要的是左连接(Left Join),而不是merge()默认的内连接。下面是两种简单可行的方法:

方法一:基础R的merge()函数

给merge()加上all.x = TRUE参数,就能保留DF1的所有行,匹配上的填充对应值,没匹配上的自动留空(以NA形式呈现):

# 模拟示例数据
DF1 <- data.frame(ID = 1:200, Col1 = paste0("Val_", 1:200))
DF2 <- data.frame(ID = sample(1:200, 170), Col2 = paste0("Fill_", sample(1:200, 170)))

# 左连接匹配,保留DF1所有行
result <- merge(DF1, DF2, by = "ID", all.x = TRUE)

方法二:dplyr包的left_join()函数

如果习惯tidyverse风格,left_join()逻辑更直观,默认就会保留第一个数据框的所有行:

library(dplyr)

# 使用上述模拟数据执行左连接
result <- DF1 %>% left_join(DF2, by = "ID")

两种方法的结果一致:DF1里的所有ID都会被保留,能匹配到DF2的ID会填充对应列的值,匹配失败的位置显示NA(即你需要的空白状态)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:12:03