r - 合并两个基于时间范围和唯一 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
解决方案
推荐阅读
- java - Spring Boot with postgres --> HikariPool-1 - 池初始化期间出现异常
- python - Django:视图没有返回 HttpResponse 对象。它返回 None 代替。何时覆盖 Form_Valid
- c# - HttpClient 响应消息“操作已取消。”。postman 中的 json 结果是 [ ]? 如何从 API 获取所有数据
- c++ - CPP 问题 - 素数数组,sqrt while 循环如何找到素数?
- php - stream_set chunk_size():块大小不能大于 laravel 24215454
- mysql - 在两个单独的表中计算计划总额与实际总额
- java - Java Cloud Run 在资源文件夹中找不到文件
- python - 循环 pandas groupby 并将操作分配回父 DataFrame
- python - Scikit-Learn Pipeline ValueError: Input contains NaN, infinity or a value too large for dtype('float64') whenfitting model
- c++ - 如何获取函数模板以匹配类型?