给出以下代码:
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
如何有效地做到这一点?谢谢!
答案 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