R语言中合并不同行数data frame并按匹配列重复填充对应值
你需要的合并逻辑属于左连接,以行数更多的df1为基础表,按三个公共列id、num、age匹配df2的对应字段,匹配到的a、b列会自动按df1的重复行重复填充,符合你的预期输出,两种实现方式如下:
基础R实现
result <- merge(df1, df2, by = c("id", "num", "age"), all.x = TRUE)
参数说明:
by:指定两个表匹配的公共列all.x = TRUE:保留第一个表(df1)的所有行,不会因为df2行数少丢失df1的记录
dplyr实现(tidyverse生态常用)
library(dplyr) result <- left_join(df1, df2, by = c("id", "num", "age"))
两种方式输出的结果和你给出的预期完全一致,直接打印即可查看。
内容的提问来源于stack exchange,提问作者mehmo
相关产品推荐
相关产品推荐

