#r #time
Вопрос:
У меня есть большой набор данных, и все, что я хочу сделать, это создать еще один набор данных из него в зависимости от времени суток — так что все строки находятся между (и включая) временем 04:00 и 21:00. Столбец Даты-POSIXlt. Небольшая выборка набора данных выглядит следующим образом:
ID | Улица | Дата |
---|---|---|
1 | Святая дорога | 2020-12-31 23:00:00 |
2 | Святая дорога | 2021-01-01 03:00:00 |
3 | Святая дорога | 2021-01-01 04:00:00 |
4 | Святая дорога | 2021-07-06 22:00:00 |
Существует ли простой способ выбрать строки для создания набора данных, который включает только строки в пределах вышеупомянутого временного диапазона (как в следующем примере)?
ID | Улица | Дата |
---|---|---|
2 | Святая дорога | 2021-01-01 03:00:00 |
3 | Святая дорога | 2021-06-01 04:00:00 |
Заранее спасибо.
Комментарии:
1. Разве панды не являются модулем Python ? Или что вы подразумеваете под «Я пытался с Пандами, которые казались самым простым вариантом, но это было несовместимо с моей версией R» ??
2. Спасибо за ваш комментарий. Да, это мое понимание, но я видел другое решение, в котором использовались Панды для r., но теперь оно прекращено в версии r, которую я в настоящее время использую. Я удалил эту ссылку сейчас, так как это может запутать вопросы и запутать вопрос.
Ответ №1:
С помощью lubridate
library(lubridate)
df <- data.frame(ID = c(1,2,3,4),Street = c("Saints Road","Saints Road","Saints Road","Saints Road"),Date = c("2020-12-31 23:00:00","2021-01-01 03:00:00","2021-06-01 04:00:00","2021-07-06 22:00:00"))
df$Date <- as.POSIXlt(df$Date)
df %>%
filter(hour(Date) >= 3 amp; hour(Date) <= 21)
Выход:
ID Street Date
1 2 Saints Road 2021-01-01 03:00:00
2 3 Saints Road 2021-06-01 04:00:00