gpt4 book ai didi

r - 如何有效地找到 R 中数据帧交集的索引?

转载 作者:行者123 更新时间:2023-12-01 08:24:42 31 4
gpt4 key购买 nike

我有以下设置(如果我的真正问题是玩具示例):

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

如果 data1 中的 data2 行有效,我如何找到索引?上例中的结果应该是 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"

关于r - 如何有效地找到 R 中数据帧交集的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40281321/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com