如何通过在 R 中使用 inner_join、dplyr 同时匹配的 2 列连接两个数据帧?

How to join two data frames by 2 columns which should be matched at the same time with using inner_join, dplyr in R?

  1. 目标是通过 ID & year 匹配 2 个长数据帧,在 R
>data_1

ID    year    fee    health
1      0      100      1
1      1       50      2
2      0       50      2
2      1       80      3     
・
・
・
>data_2

ID    year    religion 
1      0        5
1      1        8
2      0        3
2      1        2     
・
・
・

目标是这样的

>data_join

ID    year    fee    health    religion
1      0      100      1          5
1      1       50      2          8
2      0       50      2          3
2      1       80      3          2 
・
・
・

我查看了页面 https://dplyr.tidyverse.org/reference/join.html 并尝试 运行 下面的代码,但它们无法匹配。

data_join <- inner_join(data_1, data_2, by = ID & year )

我该如何解决这个问题?谢谢。

您只是缺少要用于连接的变量中名称的向量。这应该可以。

data_join <- inner_join(Data_1, Data_2, by = c("ID" , "year") )

### Here is your example ###
    Data_1<-matrix(c(1,0,100,1,1,1,50,2,2,0,50,2,2,1,80,3), ncol=4,byrow = T)
    Data_2<-matrix(c(1,0,5,1,1,8,2,0,3,2,1,2), ncol=3,byrow = T)

    Data_1<-as.data.frame(Data_1)
    Data_2<-as.data.frame(Data_2)

    names(Data_1)<-c("ID","Year","Fee","Health")
    names(Data_2)<-c("ID","Year","Religion")

    data_join <- inner_join(Data_1, Data_2, by = c("ID" , "Year") )