r - 如何使用 R 中的 inner_join、dplyr 将两个数据帧连接到 2 列,这些列应该同时匹配?
问题描述
- 目标是按ID和年份
inner_join
匹配 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") )
推荐阅读
- ios - how to move the secondViewController from the top of the firstViewController using panGesture?
- import - Enterprise Architect - 导入关系
- javascript - 在执行测试之前等待一个自己的函数(它返回一个承诺)
- json - 与 Kendo-ui Grid 反应 - 错误的列标题
- c# - 将 Arduino 的连续串行端口通信转换和更新为 Visual Studios (C#) 中的整数数组
- php - Laravel leftJoin 与关系表中的闭包连接
- node.js - 节点/vscode 的替代调试输出,同时构建基于终端的可视化
- java - 找出 3 个中字典顺序最小的字符串
- mongodb - 如何重构 Mongodb Linq 查询以在 Cosmos Db 中工作?
- python-3.x - python git-submodule 从其他 git-submodule 导入