R语言如何匹配partner_id对应的value生成新列partner_value
R实现配对id匹配取值的方法
下面给两种常用的实现方案:
方法1:基础R实现(无需加载额外包)
核心逻辑是用match()函数找到每行partner_id对应的行位置,直接提取对应value赋值即可:
df$partner_value <- df$value[match(df$partner_id, df$id)]
运行后直接得到目标数据集,适合不想加载额外依赖的场景。
方法2:dplyr关联实现(适合tidyverse生态用户)
通过左连接的方式把对应partner的value匹配进来,逻辑更直观:
library(dplyr) df <- df %>% left_join( # 提取id和对应value,重命名为partner_value df %>% select(id, partner_value = value), # 关联规则:原数据的partner_id 对应 匹配表的id by = c("partner_id" = "id") )
两种方法运行后都可以得到你给出的预期结果,你可以根据自己的使用习惯选择。
内容的提问来源于stack exchange,提问作者ecl
相关产品推荐
相关产品推荐

