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

R语言中如何按name字段匹配两个数据集的DOB列

解决方法

你可以通过左连接实现需求,保留DOB.data2的全部记录,匹配到的name对应填充DOB值,未匹配的自动填充为NA,以下是两种常用实现方式:

方法1:基础R原生函数实现

直接用merge()函数做左连接即可:

# 左连接,保留DOB.data2的所有行
merged_data <- merge(x = DOB.data2, y = DOB.data, by = "name", all.x = TRUE)

参数说明:

  • by = "name":指定两个数据集按name字段作为匹配键
  • all.x = TRUE:保留左表(即第一个参数x=DOB.data2)的全部记录,右表无匹配的字段值自动设为NA

方法2:dplyr包实现(更简洁的管道操作)

如果你习惯用tidyverse生态的函数,用left_join()即可:

# 加载dplyr包
library(dplyr)

merged_data <- DOB.data2 %>% 
  left_join(DOB.data, by = "name")

注意

你给出的DOB.data2示例定义存在小问题:x列有4个值但行号设置为3行,运行会报错,实际使用时将对应代码的row.names = c(NA, -3L)改为row.names = c(NA, -4L)即可,不影响合并逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:06:03