R - 基于查找数据框的子集数据框

R - Subset dataframe based on a lookup dataframe

我有 2 个数据框。

我想将 Df1 子集化为 return 一个新数据框,其中 idmonth 是来自查找数据框:lookupDf.

那些匹配的行将导致 Df3。

例如:

Df1

id    month   x
A    20      10
B    20      11
C    20      12
D    20      13
E    20      14
A    21      15
B    21      16
C    21      17
D    21      18
E    21      19


lookupDf

id    month  
A    20     
B    20   
C    20  
E    20    
C    21     
D    21      

Df3 是 Df1 的子集

Df3

id    month   x
A    20      10
B    20      11
C    20      12
E    20      14
C    21      17
D    21      18

使用tidyverse工具,查看dplyr中的各种join函数。

此处您希望保留 df1 中与 lookupDf 中匹配的行,因此您希望使用 semi_join,如果 df1 中的行与 lookupDf 中的多个行匹配,它不会复制这些行。

Df3 <- dplyr::semi_join(Df1, lookupDf)