我有三个数据帧,我想在第一个数据帧中添加一些列,它计算第一个数据帧中的前两列出现在其他数据帧中的次数,例如
数据框 - x
ab
1 1
1 2
2 1
2 2
数据框 - y
ab
1 1
1 1
1 2
2 2
2 2
数据框 - z
ab
1 2
2 1
2 1
2 2
所以第一个数据帧会变成
abyz
1 1 2 0
1 2 1 1
2 1 0 2
2 2 2 1
我有办法做到这一点,例如我目前正在做
x$y<- sapply(1:nrow(x), function(i){
sum(y$a == x$a[i] & y$b == x$b[i])
}
x$z<- sapply(1:nrow(x), function(i){
sum(z$a == x$a[i] & z$b == x$b[i])
}
但是我的数据框非常大,我的方法需要一段时间才能完成,所以我想知道最快的方法来做到这一点。
请询问是否有任何不清楚的地方。
提前致谢