У меня есть столбец раз, который был введен как необработанный текст. Ниже приведен пример (код для ввода данных внизу поста):
#> id time
#> 1 NA <NA>
#> 2 1 7:50 pm
#> 3 2 7:20 pm
#> 4 3 3:20 pm
Я хотел бы добавить переменные индикатора, которые, например, указывают, является ли время:
- после 19:00
- с 19:00 до 19:30
Итак, мой желаемый результат будет выглядеть так:
#> id time before_1930 between_1900_1930
#> 1 NA <NA> NA NA
#> 2 1 7:50 pm 0 0
#> 3 2 7:20 pm 1 1
#> 4 3 3:20 pm 1 0
Пока я пробовал читать во времена с parse_date_time
, но это добавляет дату:
library(lubridate)
df <- df %>% mutate(time = lubridate::parse_date_time(time, '%I:%M %p'))
df
#> id time
#> 1 NA <NA>
#> 2 1 0000-01-01 19:50:00
#> 3 2 0000-01-01 19:20:00
#> 4 3 0000-01-01 15:20:00
Есть ли простой способ работать напрямую с часами и минутами, а затем создавать фиктивные переменные, о которых я упоминал?
Код для ввода данных
df <- data.frame(
id = c(NA, 1, 2, 3),
time = c(NA, "7:50 pm", "7:20 pm", "3:20 pm")
)