【发布时间】:2021-11-25 13:02:37
【问题描述】:
我有两个数据集。第一个数据集对于每个 ID 都有两个日期列(开始、停止)。有时它可以为每个 ID 包含多个起止日期。
数据集1
Id Code Start Stop
431 279 2017-11-15 2019-08-15
431 578 2019-09-15 2021-01-15
832 590 2008-04-15 2020-05-15
832 519 2020-06-15 2021-04-15
第二个数据集有 Id 和每个 ID 的许多时间戳行,如下所示
Id Weight Date
431 12.23 2018
832 15.12 2020
832 6.78 2020
832 4.27 2007
我的目标是创建一个列InBetween,如果第二个数据集中的行在第一个数据集中的两个日期之间,则表示“是”;如果第二个数据集中的行不在两个日期之间,则表示“否”在第一个数据集中,与第一个数据集中的其他列类似。
Id Weight Date Between Code Start Stop
431 12.23 2018 Yes 279 2017-11-15 2019-08-15
832 15.12 2020 Yes 590 2008-04-15 2020-05-15
832 6.78 2020 Yes 590 2008-04-15 2020-05-15
832 4.27 2007 No NA NA NA
我可以使用 for 循环来做到这一点,但我更喜欢使用 dplyr、innerjoin 或其他没有 forloops 的选项的任何解决方案。提前致谢。
【问题讨论】:
标签: r date dplyr grouping inner-join