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

如何在R中用dplyr的inner_join按两列同时匹配合并数据框?

解决R中inner_join按多列匹配合并数据框的问题

问题出在你给inner_join()的by参数写法上啦!dplyr的连接函数里,by参数需要接收的是字符向量,用来指定要匹配的列名,而不是用&直接连接变量名,这就是你合并失败的原因。

正确的合并代码

library(dplyr)
data_join <- inner_join(data_1, data_2, by = c("ID", "year"))

代码解释

  • 因为你的两个数据框中,用于匹配的列名完全一致(都是ID和year),所以直接将这两个列名以字符向量的形式传给by参数即可。
  • 如果两个数据框的匹配列名不一致(比如data_2里对应列是user_id和year),可以用键值对的形式指定对应关系:
    data_join <- inner_join(data_1, data_2, by = c("ID" = "user_id", "year" = "year"))
    
    左边是data_1的列名,右边是data_2的列名。

运行这段正确代码后,就能得到你预期的合并结果:所有ID和year同时匹配的行都会被保留,并且合并两表的其他列(fee、health和religion)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:22:27