【发布时间】:2021-07-24 21:05:40
【问题描述】:
大家好,希望大家一切都好!
我目前正在处理两个数据集,一个包含纺织行业机器维修记录,另一个数据集包含机器收到的预防性维护记录。
| MACHINE | REPAIR_DATE |
|---|---|
| X | 6/03/2021 |
| Y | 24/02/2021 |
| F | 28/02/2021 |
| O | 27/02/2021 |
| O | 18/02/2021 |
| O | 12/02/2021 |
| U | 7/02/2021 |
| U | 8/01/2021 |
| U | 2/01/2021 |
| H | 1/02/2021 |
| H | 4/02/2021 |
| H | 12/03/2021 |
| H | 22/03/2021 |
第二个数据库看起来像这样
| MACHINE | MAINTENANCE_DATE |
|---|---|
| X | 4/03/2021 |
| F | 29/02/2021 |
| M | 26/02/2021 |
| L | 25/02/2021 |
| U | 16/02/2021 |
| H | 10/02/2021 |
| H | 5/02/2021 |
| H | 6/01/2021 |
我想要实现的是创建一个数据框,我可以在其中查看每个机器维修的日期,该日期是该特定维修的最后一次维护日期之前(也希望自从我学习以来就使用 tidyverse,但是如果你们认为使用 tidyverse 无法解决这个问题,那我也想向你们学习)。比如
MACHINE REPAIR_DATE LAST_MAINTENANCE_DATE_PRIOR_TO_REPAIR
F 28/02/2021 N.A
这是因为我们有维修日期后执行的机器 F 的维修记录,我们正在寻找维修日期之前的最新维修日期。
我在做什么?
我曾考虑按时间顺序排列这两个数据集,以便稍后加入它们,然后按 MACHINE 和 REPAIR_DATE 分组,但我发现自己正在努力适应最新的维护日期应该在维修日期之前,我必须构建包含所有机器维修日期及其各自最新维护日期的数据框。在加入表格时我也有点困惑,因为会有一些 N. 就好像我通过“虚拟变量”进行完全连接,或者即使只是加入两个数据集,也可以通过执行类似 all 的操作来表示
代码:
ds1<-tribble(
~MACHINE, ~REPAIR_DATE,
"X", "6/03/2021",
"Y", "24/02/2021",
"F", "28/02/2021",
"O", "27/02/2021",
"O", "18/02/2021",
"O", "12/02/2021",
"U", "7/02/2021",
"U", "8/01/2021",
"U", "2/01/2021",
"H", "1/02/2021",
"H", "4/02/2021",
"H", "12/03/2021",
"H", "22/03/2021")
ds2<-tribble(
~MACHINE, ~MAINTENANCE_DATE,
"X", "4/03/2021",
"F", "29/02/2021",
"M", "26/02/2021",
"L", "25/02/2021",
"U", "16/02/2021",
"H", "10/02/2021",
"H", "5/02/2021",
"H", "6/01/2021")
【问题讨论】:
标签: r date datetime conditional-statements filtering