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

R语言两个数据框字段字符匹配时如何获取对应的id值

R实现两数据框匹配提取对应id的方案

下面给出三种常用的实现方式,可根据使用场景选择:

  • 基础R merge() 关联法
    适合需要生成完整关联结果表的场景,通过指定匹配字段完成关联:
# 保留df1所有行,按name和B字段匹配后关联id
result <- merge(df1, df, by.x = "name", by.y = "B", all.x = TRUE)

运行后result数据框会自动新增id列,匹配不到的位置会返回NA。

  • 基础R match() 取值法
    如果仅需提取id向量不需要完整关联表,用该方法更高效:
# 直接为df1新增id列
df1$id <- df$id[match(df1$name, df$B)]

match()会返回df$B中匹配到df1$name的位置索引,直接取对应id值即可,示例中匹配health时会返回索引2,对应id值为2,完全符合需求。

  • dplyr包 left_join() 法
    适合习惯tidyverse语法的用户,代码可读性更高:
library(dplyr)
result <- df1 %>% 
  left_join(df, by = c("name" = "B"))

运行结果和merge方法一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:06:03