Я пытаюсь создать модель линейной регрессии между двумя временными точками (отображаемыми как время суток) - скажем, «отправлено» и «получено» - чтобы определить, есть ли определенное время дня (или промежуток времени). ) что отправляемый товар влияет на время его прибытия.
Например, если товар отправлен ближе к обеду, будет ли он доставлен позже, чем если бы он был отправлен утром?
Мой фрейм данных выглядит примерно так:
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 vs 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
Есть идеи, как это сделать?
Заранее спасибо!