【问题标题】:R - Subset dataframe based on a lookup dataframeR - 基于查找数据帧的子集数据帧
【发布时间】:2018-07-08 14:43:21
【问题描述】:

我有 2 个数据框。

我想对 Df1 进行子集化以返回一个新数据帧,其中 id 和 month 与查找数据帧匹配: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

【问题讨论】:

标签: r dataframe subset lookup


【解决方案1】:

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

这里您想保留 df1 中与 lookupDf 匹配的行,因此您想使用 semi_join,如果 df1 中的行与 lookupDf 中的多行匹配,则不会重复它们。

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

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多