Перевести переменную времени в фактор в R - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю над набором данных транзакций, который сообщает время транзакции в формате ччммсс. например, 204629, 215450 et c.
Я хотел бы вывести из данного столбца факторную переменную с уровнями, которые указывают определенные часы дня, например, с 12 до 15 часов, с 15 до 18 часов. et c.
Я могу подумать об использовании функции str_sub для выбора значений часов из заданной переменной и преобразования их в коэффициент. Но есть ли более эффективный метод для достижения этой цели?

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете использовать dplyr::mutate и stringr::str_sub, чтобы создать столбец hour, а затем использовать cut, чтобы разделить столбец hour на ваши периоды.

library(dplyr)
library(stringr)
library(lubridate)

tibble(string = c("215450", "220102", "020129")) %>% 
  mutate(hour = str_sub(string, 1, 2) %>% as.numeric,
         minute = str_sub(string, 3, 4) %>% as.numeric,
         second = str_sub(string, 5, 6) %>% as.numeric,
         time = str_c(hour, minute, second, sep = ":") %>% hms()) %>% 
  mutate(period = cut(hour, breaks = 2, labels = c("period one", "period two")))

# A tibble: 3 x 6
  string  hour minute second time        period    
  <chr>  <dbl>  <dbl>  <dbl> <Period>    <fct>     
1 215450    21     54     50 21H 54M 50S period two
2 220102    22      1      2 22H 1M 2S   period two
3 020129     2      1     29 2H 1M 29S   period one
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...