我想知道A中与B行匹配的行的索引。
A和B都是数据帧。为简单起见,假设:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
在这种情况下,它应该返回1,2,3。
我的完整数据集有500k行和18列。
答案 0 :(得分:2)
join.keys
包中的plyr
函数为一对输入数据框中的每个唯一行提供了一个键,这使得确定来自A
的哪些行非常简单B
。在join.keys
返回的列表中,x
是第一个数据帧的行标识符的向量,y
是第二个数据帧的行标识符的向量。
library(plyr)
with(join.keys(a1, a2), which(x %in% y))
# [1] 1 2 3
答案 1 :(得分:0)
您可以使用此代码:
>subset(a1,a1$a %in% a2$a)
它返回:
>1 a
>2 b
>3 c
如果您只想要列a,可以添加:
>subset(a1,a1$a %in% a2$a,a)
>1
>2
>3
我认为在您的数据上执行它会很快。