通过另一个data.table的值从data.table获取行

时间:2020-02-03 09:20:01

标签: r data.table

给出以下代码:

library(data.table)
df1<-data.table(a=c(1,1,2,2,1),b=c(1,3,1,1,2),c=c(2,9,8,3,7))
df2<-data.table(a=c(1,2),b=c(1,1))
n<-c("a","b")

我想选择df1中在df2中具有相同行的所有行,仅考虑n给出的列。

因此,结果应为:

   a b c
1: 1 1 2
2: 2 1 8
3: 2 1 3

如何有效地做到这一点?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以执行inner join

df1[df2, on = n, nomatch = 0]

   a b c
1: 1 1 2
2: 2 1 8
3: 2 1 3