我有以下设置(如果我的实际问题是玩具示例):
data1 = data.frame(cbind(1:8,1:8+3,1:8+5))
data2 = data.frame(rbind(c(4,7,9),c(7,10,12)))
从而
> data1
X1 X2 X3
1 1 4 6
2 2 5 7
3 3 6 8
4 4 7 9
5 5 8 10
6 6 9 11
7 7 10 12
8 8 11 13
和
> data2
X1 X2 X3
1 4 7 9
2 7 10 12
我怎样才能找到索引如果行data2
中data1
有效?上面示例中的结果应为c(4,7)
。我尝试了循环,但是效率太低。谢谢你的帮助!
我们可以使用which
与%in%
which(do.call(paste, data1) %in% do.call(paste, data2))
#[1] 4 7
或参加
library(data.table)
setDT(data1, keep.rownames = TRUE)[data2, on = names(data2)]$rn
#[1] "4" "7"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句