У меня есть таблица времени и даты, и я хочу добавить новый фрейм данных в часах с 00:00 до 00:00 в последовательности по 15 минут для каждой строки, например, 00:00, 00:15,... 23:45, где я пытаюсь узнать, сколько раз работник работал в своем графике.
Обратите внимание, что формат даты и времени d-m-Y h:m
у меня (изменено намои данные)
worker Start_shift End_shift difference
Worker 130 30-05-2018 15:00 01-06-2018 08:15 41.25
Worker 130 15-06-2018 15:00 16-06-2018 09:00 18.00
Worker 130 22-03-2018 15:00 23-03-2018 08:15 17.25
Worker 130 27-02-2018 15:00 28-02-2018 10:00 19.00
Worker 130 30-05-2018 15:00 01-06-2018 08:15 41.25
Worker 18 27-04-2018 15:00 29-04-2018 07:24 40.40
Worker 11 29-03-2018 16:00 31-03-2018 07:24 39.40
Worker 11 25-03-2018 16:00 27-03-2018 07:24 39.40
Я хочу иметь новый фрейм данных для этого вывода.Где я могу видеть, сколько они работают в разных временных метках
Это всего лишь пример желаемого вывода , а не истинный вывод вышеуказанного набора данных.Приведенные ниже значения могут быть неправильными.
00:00 | 00:15 | 00:30 | ... | 23:45
worker 130 5 5 6 .. 4
worker 18 2 5 5 .. 3
worker 11 1 1 1 .. 1
Я попытался создать 15-минутную последовательность с помощью вызова seq ().
seq15 <- seq(lubridate::as_datetime(paste0(DATE_Start, " 00:00:00"), format="%Y-%m-%d %H:%M:%S", tz = "UTC"),
lubridate::as_datetime(paste0(DATE_End, " 00:00:00"), format="%Y-%m-%d %H:%M:%S", tz = "UTC"), by = "15 mins")
Однако с более длинными сменами я не могу сложить вместе временные метки
Любая помощь будет оценена
dput ниже
structure(list(Start_shift = c("30-05-2018 15:00", "15-06-2018 15:00",
"22-03-2018 15:00", "27-02-2018 15:00", "30-05-2018 15:00", "27-04-2018 15:00",
"29-03-2018 16:00", "29-03-2018 16:00"), End_shift = c("01-06-2018 08:15",
"16-06-2018 09:00", "23-03-2018 08:15", "28-02-2018 10:00", "01-06-2018 08:15",
"29-04-2018 07:24", "31-03-2018 07:24", "31-03-2018 07:24"),
difference = structure(c(41.25, 18, 17.25, 19, 41.25, 40.4,
39.4, 39.4), class = "difftime", units = "mins"), worker = structure(c(30L,
30L, 30L, 30L, 30L, 8L, 1L, 1L), .Label = c("Worker 11",
"Worker 12", "Worker 13", "Worker 14", "Worker 15", "Worker 16",
"Worker 17", "Worker 18", "Worker 19", "Worker 110",
"Worker 111", "Worker 112", "Worker 113", "Worker 114",
"Worker 115", "Worker 116", "Worker 117", "Worker 118",
"Worker 119", "Worker 120", "Worker 121", "Worker 122",
"Worker 123", "Worker 124", "Worker 125", "Worker 126",
"Worker 127", "Worker 128", "Worker 129", "Worker 130",
"Worker 131", "Worker 132", "Worker 133", "Worker 134",
"Worker 135", "Worker 136", "Worker 137", "Worker 138",
"Worker 139", "Worker 140"), class = "factor")), row.names = c(7052L,
7053L, 7054L, 7055L, 7074L, 1767L, 21L, 58L), class = "data.frame")