При использовании функции read_excel даты в электронной таблице в столбце FuelEventDateTime имеют формат «дд / мм / гггг ч .: мм: сс» (пример: 05.03.2009 9:19:00 AM)анализируется как символьная строка в таком формате: пример: 43588.849xxxxx (х х любое число).Я не могу установить в этом столбце правильный класс даты, и я не знаю, что может означать это число, но видел его несколько раз в Excel.
Пытался отделить "."в строке символов установите столбец as.numeric и опробовал несколько функций в lubridate, R base и anydate library, поскольку, возможно, это число является датой в формате эпохи в источнике "1900-01-01"
Чтение данных
sys_raw <- read_excel("Advanced Fill-Ups Report 15052019_165240.xlsx", sheet = "Data", col_names = FALSE)
col_names_sys <- sys_raw[11,]
sys_tidy <- sys_raw[12:ncol(sys_raw),] %>%
setNames(col_names_sys) %>%
select(DeviceName, FuelEventDateTime,FuelUsedEventDistance)
Заметил символьную строку как числа, пробовал отдельный "."и установите в качестве числового значения
sys_tidy <- sys_tidy %>%
mutate(FuelEventDateTime = str_split(FuelEventDateTime, "\\.")) %>%
separate(FuelEventDateTime, c("c","date","time")) %>%
separate(DeviceName, c("Device"), sep = "\\s") %>%
select(Device, date, FuelUsedEventDistance) %>%
mutate(date = as.numeric(date))
sys_tidy <- sys_tidy %>%
as.Date(date, origin = "1900-01-01")
Фактические результаты этого - ошибки, ожидаемый результат - дата столбца с классом даты в формате "дд / мм / гггг", время не требуется.
Пример сообщений об ошибках:
Ошибка в as.Date.default (., Date, origin = "1900-01-01"): не знаю, как конвертировать '«.в класс «Дата»
Ошибка в as.POSIXct.default (., date, origin = "1900-01-01"): не знаю, как преобразовать '.'в класс «POSIXct»