首页 > 解决方案 > 合并两个基于时间范围和唯一 ID 的数据帧

问题描述

所以我有两个数据框,我试图根据它们的唯一 ID 和日期进行合并,但是与 DF1 相同的 ID 相比,某些 DF2 日期有时会休息一到两天。DF1 和 DF2 是示例数据框,我想要类似 DF3 的东西,其中日期列显示 DF1 或 DF2 上的日期

这是我最初尝试的方法,但我想不出一种基于不完全匹配的日期进行连接的方法。

DF3 <- merge(x = DF1, y = DF2, by.x = c("ID1", "StartDate1"), 
                    by.y = c("ID2", "StartDate2"), all = FALSE)

样本数据:

DF1
ID1       StartDate1      Gender
104382    2013-09-16        M
104382    2014-02-27        F
104382    2014-07-21        F 
167623    2018-01-09        M

DF2
ID2       StartDate2      Gender
104382    2013-09-17        M
104382    2014-02-27        F
104382    2014-07-21        F
167623    2018-01-11        M

期望的结果:

DF3
ID        StartDate      Gender
104382    2013-09-17       M
104382    2014-02-27       F
104382    2014-07-21       F
167623    2018-01-11       M

或者

DF3
ID        StartDate       Gender
104382    2013-09-16        M
104382    2014-02-27        F
104382    2014-07-21        F 
167623    2018-01-09        M

标签: r

解决方案


推荐阅读