Работаем с разницей во времени и хотим создавать временные интервалы на основе разного времени в моем фрейме данных. Например, у меня есть отдельный столбец в моем фрейме данных, который содержит секунды. То, что я хочу сделать, это проверить эти секунды, попадает ли он в какую-либо из категорий, то есть временных интервалов.
timediff(in Sec) Waiting_slots
14589 >= 4 hours
11580 2 - 4 hours
11940 2 - 4 hours
date
2018-01-19 15:17:48 UTC--2018-01-19 19:20:57 UTC
2016-06-26 22:55:00 UTC--2016-06-27 02:08:00 UTC
2016-05-02 07:47:00 UTC--2016-05-02 11:06:00 UTC
и т.д.
Итак, время ожидания равно <= 2 часа, 2 - 4 часа,> 4 часа
Я должен создать ожидающие слоты, как это, но не смог достичь этого, потому что я не знаю, как сделать это временные интервалы в течение 2 - 4 часов.
Я попробовал этот метод,
# timed <- c(2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9)
# AE_subset <- mutate(AE_subset, waiting_slots = ifelse(timediff < 2.0,"Less than 2 hours",
# ifelse(timediff %in% timed,"Between 2 - 4 hours",
# ifelse(timediff > 4.0,"More than 4 hours","check"))))
# AE_subset <- AE_subset %>% mutate(waiting_slots = replace(waiting_hours,waiting_hours== "check","Between 2 - 4 hours"))
Я использовал продолжительность от Lubridate для преобразования секунд в часы.
> duration(timediff = 14589)
[1] "14589s (~4.05 hours)"
ae <- ae %>% mutate(wait_slots = cut(ae$time_interval, breaks = c(7199,14400,121918,Inf),labels = c("Less than 2 hours","Between 2 to 4 hours","More than 4 hours")))
Использование вышеуказанного метода дает мне неправильную группировку.
Может кто-нибудь помочь мне решить эту проблему, пожалуйста!