我正在尝试合并行数和列数不相等的两个数据框,比如说A和B。它们具有两个公共列c1和c2。对于一个事实,我知道一个数据帧中存在的每个c1 x c2组合也存在于另一个数据帧中,因此我不希望有任何null值。A存在每种c1 x c2组合的许多实例,而B具有每种c1 x c2组合的恰好一个实例。rbind和merge一直没有工作。
如果两个数据帧是:
c1 c2 c3 c4
1 A 1 5 1
2 B 2 4 2
3 B 1 3 4
4 A 2 3 4
5 A 1 3 3
6 B 2 1 8
和
c1 c2 c5
1 A 1 5
2 B 2 4
3 B 1 3
4 A 2 8
然后我想以某种方式与c1和c2绑定并产生:
c1 c2 c3 c4 c5
1 A 1 5 1 5
2 B 2 4 2 4
3 B 1 3 4 3
4 A 2 3 4 8
5 A 1 3 3 5
6 B 2 1 8 4
A <- data.frame(c1=c('A','B','B','A','A','B'),c2=c(1,2,1,2,1,2),c3=c(5,4,3,3,3,1),c4=c(1,2,4,4,3,8),stringsAsFactors=F);
B <- data.frame(c1=c('A','B','B','A'),c2=c(1,2,1,2),c5=c(5,4,3,8),stringsAsFactors=F);
merge(A,B,c('c1','c2'));
## c1 c2 c3 c4 c5
## 1 A 1 5 1 5
## 2 A 1 3 3 5
## 3 A 2 3 4 8
## 4 B 1 3 4 3
## 5 B 2 4 2 4
## 6 B 2 1 8 4
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句