如何通过在 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?
- 目标是通过 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") )
- 目标是通过 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") )