我有一个数据框A,看起来像这样:
col 1 col2 col3
NL 6 9
UK 5 5
US 9 7
我有一个数据框B,由大型数据框的行的子集组成,如下所示:
col 1 col2 col3
NL 6 9
UK 5 5
现在,我想从A中的B查找行的索引,因此它应返回1 and 2
。有人知道该怎么做吗?
编辑
接下来,当我只有B的前两列时,我也想找到A中的行的索引。因此,在这种情况下,它也应该返回1 and 2
。有人知道该怎么做吗?
答案 0 :(得分:1)
通常,match
获取索引。在我们的示例中,一种方法是将paste
行合并在一起,并使用match
match(do.call(paste, df2), do.call(paste, df1)
如果仅具有相同列名的列子集,请使用intersect
获取列名的向量,子集数据集,执行paste
并使用{{1 }}
match
另一个选择是nm1 <- intersect(names(df1), names(df2))
match(do.call(paste, df2[nm1]), do.call(paste, df1[nm1]))
,我们在两个数据集中创建一个行索引,进行联接并提取行索引
join