簡體   English   中英

在 R 中使用 dplyr 來識別一列與另一列中的任何行匹配的任何實例,按 id 分組

[英]Use dplyr in R to identify any instance one column matches any row in another column, grouped by id

我有一個包含兩個日期(日期 A 和日期 B)的數據集。 我想找到日期 A 與同一 id 變量中的任何日期 B 匹配的行。

id    date A        date B        
1     01/20/2018    02/25/2019
1     01/20/2018    01/20/2018
2     03/18/2017    03/20/2019
2     03/18/2017    04/19/2018  
2     03/20/2019    03/20/2019
2     03/20/2019    04/19/2018 
3     08/01/2019    09/06/2019

我希望輸出產生一個布爾變量“date_match”:

id    date A        date B       date_match       
1     01/20/2018    02/25/2019   TRUE
1     01/20/2018    01/20/2018   TRUE
2     03/18/2017    03/20/2019   FALSE
2     03/18/2017    04/19/2018   FALSE
2     03/20/2019    03/20/2019   TRUE
2     03/20/2019    04/19/2018   TRUE 
3     08/01/2019    09/06/2019   FALSE

謝謝!

使用dplyr ,您可以嘗試:

df %>%
 group_by(id) %>%
 mutate(date_match = date_A %in% date_B)

     id date_A     date_B     date_match
  <int> <chr>      <chr>      <lgl>     
1     1 01/20/2018 02/25/2019 TRUE      
2     1 01/20/2018 01/20/2018 TRUE      
3     2 03/18/2017 03/20/2019 FALSE     
4     2 03/18/2017 04/19/2018 FALSE     
5     2 03/20/2019 03/20/2019 TRUE      
6     2 03/20/2019 04/19/2018 TRUE      
7     3 08/01/2019 09/06/2019 FALSE

帶數據data.table

library(data.table)
setDT(df)[, date_match := date_A %chin% date_B, id]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM