Как импортировать данные Excel с информацией заголовка, которая является datetime - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть тренд энергии от электрических субметров.Заголовки столбцов указываются в дате-времени (например: 1/13/2017 0:00, 1/13/2017 0:15 ...), ниже этих заголовков показания потребления субметров в целых числах.

Когда я выполняю read_excel(), заголовки приходят в R в символьном формате, например "424509.0129493".Данные столбца ниже являются числовыми.Затем я выполняю команду gather, и когда я делаю заголовок даты и времени, все десятичные дроби усекаются до целых чисел, что удаляет информацию о моем временном интервале.Любая помощь с благодарностью.

meter_reads <- read_excel("_Jan to Feb meter data for Yardi.xlsx")
BoonShort <-  gather(meter_reads, Date, Value, 3:ncol(meter_reads))

1 Ответ

0 голосов
/ 05 февраля 2019

Я бы начал с отделения части даты от части часа, используя отдел от tydir.

* Предположим, что df = "meter_reads" и dateTime column = "dateTimePart"

nuevoDf<-separate(data = meter_reads, col = dateTimePart, into = c("date","time"),sep = "\\.")

Теперь в Excel есть числовое значение, которое указывает количество дней, прошедших после декабря30, 1899. Итак, все, что нам нужно сделать, чтобы преобразовать столбец даты в реальную дату, это добавить:

nuevoDf$realDate<- nuevaFecha<-as.POSIXct("1899-12-30")+nuevoDf$date*3600*24

** Обратите внимание, что с тех пор мы в основном добавили количество секунд, получив 3600 * 24(количество секунд в 1 дне)

Хорошо, наконец, чтобы получить часы: Итак, Excel в основном дает вам часть дня, прошедшего с 12:00.Все, что нам нужно сделать, это получить эту дробь и преобразовать ее в считанные секунды, например:

nuevoDf$seconds<-nuevoDf$time*3600*24

Затем просто добавьте секунды к вашей реальной дате:

nuevoDf$realDate + nuevoDf$seconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...