![](/img/trans.png)
[英]Efficiently find where any column in one data frame matches any column in another data frame
[英]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.