如何将DataFrame匹配行的指定列添加到含重复行的另一DataFrame?
解决方案
你可以用R的dplyr包中的left_join()函数实现需求,核心是按name列将两个数据框关联,把df1的out和b列匹配到df2的对应行:
步骤1:加载依赖包
如果还没安装dplyr,先执行安装命令:
install.packages("dplyr")
安装完成后加载包:
library(dplyr)
步骤2:执行左连接
result_df <- df2 %>% left_join(df1 %>% select(name, out, b), by = "name")
结果验证
执行后得到的result_df与你期望的输出一致:
# 查看结果 result_df #> name o out b #> 1 z 9 * 9 #> 2 z 5 * 9 #> 3 z 4 * 9 #> 4 c 3 * 3 #> 5 c 7 * 3 #> 6 n 3 5
说明
left_join()会保留df2的所有行,同时将df1中name匹配的out和b值填充到对应位置df1 %>% select(name, out, b)用于提前筛选df1中需要的列,避免合并时带入无关数据
内容的提问来源于stack exchange,提问作者bic ton
相关产品推荐
相关产品推荐

