Как я могу использовать функцию разбора lubridate с R-конвейером? - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь написать конвейер, который анализирует вектор даты и вычитает 4 часа из каждого значения. Вот некоторые примеры данных:

structure(list(Created = c("24/04/2019 05:03:45", "24/04/2019 05:03:47", 
"24/04/2019 05:03:56", "24/04/2019 05:04:00", "24/04/2019 11:51:57", 
"24/04/2019 05:58:21", "23/04/2019 10:36:24", "24/04/2019 01:33:53", 
"23/04/2019 18:44:50", "23/04/2019 18:25:19"), Ended = c("Â", 
"Â", "Â", "Â", "24/04/2019 12:20:26", "24/04/2019 11:51:57", 
"23/04/2019 10:51:21", "24/04/2019 05:03:56", "24/04/2019 01:33:53", 
"23/04/2019 18:44:50")), row.names = c(NA, 10L), class = "data.frame")

Это работает:

Data$Ended <- dmy_hms(Data$Ended)
Data$Ended <- Data$Ended - hours(4)

Но этот первый шаг не:

Data$Ended %>% dmy_hms()

Я получаю это предупреждение: Все форматы не удалось разобрать. Форматы не найдены.

1 Ответ

0 голосов
/ 24 апреля 2019

Для такого рода трансформации лучше использовать mutate() А конвейерная структура позволяет вам избегать использования Data $ для каждого поля. Если мы представим, что данные выглядят так, вы можете попробовать:

Data <- tibble(Ended=c('23-04-2019 00:00:00', '23-04-2019 01:00:00', 
                       '24-04-2019 00:00:00', '24-04-2019 01:00:00'))

Data <- Data %>% 
  mutate(Ended=dmy_hms(Ended)- hours(4)) 
...