我正在尝试在两个时间点(显示为一天中的时间)之间产生线性回归模型-说“已调度”和“已接收”-以观察一天中是否有特定时间(或时间跨度) )所发货的物品会影响其到达时间。 例如,如果某个物品在午餐时间附近寄出,它会比早上寄出的时间晚吗?
我的数据框看起来像这样:
Dispatched Received
52756 2018-11-05 11:41:00 2018-11-05 11:49:00
52764 2018-10-05 08:03:00 2018-10-05 08:03:00
52772 2018-08-24 07:36:00 2018-08-24 07:37:00
52780 2018-07-26 07:37:00 2018-07-26 07:40:00
52788 2018-07-12 08:00:00 2018-07-12 08:01:00
52796 2018-05-30 12:54:00 2018-05-31 07:25:00
52805 2018-05-30 12:54:00 2018-05-31 07:25:00
52814 2018-06-14 09:05:00 2018-06-14 09:07:00
52820 2018-06-14 09:05:00 2018-06-14 09:07:00
52826 2018-06-14 09:05:00 2018-06-14 09:07:00
52829 2018-06-14 09:05:00 2018-06-14 09:07:00
52835 2018-06-18 11:00:00 2018-06-19 08:06:00
52843 2018-03-12 11:34:00 2018-03-13 09:53:00
52851 2018-07-03 13:14:00 2018-07-03 13:15:00
52853 2018-07-03 13:14:00 2018-07-03 13:15:00
这些日期已经作为POSIXct()
对象。
接下来,由于我对这一天不感兴趣,因此只用时间创建了2个额外的列:
Dispatched Received Disp_time Rcvd_time
52756 2018-11-05 11:41:00 2018-11-05 11:49:00 11:41:00 11:49:00
52764 2018-10-05 08:03:00 2018-10-05 08:03:00 08:03:00 08:03:00
52772 2018-08-24 07:36:00 2018-08-24 07:37:00 07:36:00 07:37:00
52780 2018-07-26 07:37:00 2018-07-26 07:40:00 07:37:00 07:40:00
52788 2018-07-12 08:00:00 2018-07-12 08:01:00 08:00:00 08:01:00
52796 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 07:25:00
52805 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 07:25:00
52814 2018-06-14 09:05:00 2018-06-14 09:07:00 09:05:00 09:07:00
52820 2018-06-14 09:05:00 2018-06-14 09:07:00 09:05:00 09:07:00
52826 2018-06-14 09:05:00 2018-06-14 09:07:00 09:05:00 09:07:00
52829 2018-06-14 09:05:00 2018-06-14 09:07:00 09:05:00 09:07:00
52835 2018-06-18 11:00:00 2018-06-19 08:06:00 11:00:00 08:06:00
52843 2018-03-12 11:34:00 2018-03-13 09:53:00 11:34:00 09:53:00
52851 2018-07-03 13:14:00 2018-07-03 13:15:00 13:14:00 13:15:00
52853 2018-07-03 13:14:00 2018-07-03 13:15:00 13:14:00 13:15:00
因此,如果时差在同一天之内,我可以绘制(ggplot2::ggplot()
)并计算出回归曲线(ggpubr::stat_cor()
)没问题。
但是,例如,如果您查看项目“ 52796”,“ 52805”,“ 52835”和“ 52843”,则它们会在一天内发送,而在第二天发送。这就是绘图(Disp_time与Rcvd_time)时的问题。
因此,我正在考虑通过简单地将时差添加到“ Rcvd_time”(即使超过24小时)来克服此问题的方法。例如,这些行:
Dispatched Received Disp_time Rcvd_time
52796 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 07:25:00
52805 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 07:25:00
52835 2018-06-18 11:00:00 2018-06-19 08:06:00 11:00:00 08:06:00
52843 2018-03-12 11:34:00 2018-03-13 09:53:00 11:34:00 09:53:00
可以表示为:
Dispatched Received Disp_time Rcvd_time
52796 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 30:29:00
52805 2018-05-30 12:54:00 2018-05-31 07:25:00 12:54:00 30:29:00
52835 2018-06-18 11:00:00 2018-06-19 08:06:00 11:00:00 32:06:00
52843 2018-03-12 11:34:00 2018-03-13 09:53:00 11:34:00 33:19:00
关于如何执行操作的任何想法? 预先感谢!
答案 0 :(得分:1)
您可能想看一下difftime
函数。
Dispatched <- as.POSIXct('2018-05-30 12:54:00')
Received <- as.POSIXct('2018-05-31 07:25:00')
time_delta <- difftime(Received, Dispatched, units = 'minutes')
time_delta