преобразование даты и времени в POSXIct - PullRequest
0 голосов
/ 17 апреля 2019

Я читаю в столбце даты и времени из Excel в R еще при преобразовании в POSXIct и использовании источника 1970-01-01 конвертирует только в дату и время в 1970 году. То же самое с пакетом lubridate, использующим источник как lubridate = orgin , Есть мысли о том, как это исправить?

пакет xlsx работает нормально, но по некоторым причинам openxlsx - нет.

test2     <- read.xlsx (FN, sheet = 3, startRow = 35, cols = 1:77)
 test2$dt  <- as.POSIXct(test2$DateTime, origin="1970-01-01")

DateTime считывает из Excel как числовой и 43306.29 должно быть 7-25-2018 7:00:00 после преобразования в формат POSXIct, но 1970-01-01 05: 01: 46

1 Ответ

1 голос
/ 17 апреля 2019

Здесь необходимо знать ключевые различия между двумя системами времени.
В Excel 43306.29 означает 43306 дней с 1 января 1900 года (день 1), а 0,29 - это доля дня (здесь около 7 часов).
R использует стандарт времени Unix, поэтому он отслеживает количество секунд с 1 января 1970 года (начало времени для программиста Unix).
Итак, для преобразования из Excel в R вам необходимо:преобразуйте количество дней от начала координат до количества секунд (60 с * 60 мин * 24 часа).

as.POSIXct(43306.29*3600*24 , origin="1899-12-30")
#"2018-07-25 02:57:36 EDT"

as.POSIXct(43306.29*3600*24 , origin="1899-12-30", tz="UTC")
#"2018-07-25 06:57:36 UTC"

Примечание: Windows и Excel предполагают, что в 1900 году был високосный год, которого не было 'Таким образом, происхождение нуждается в исправлении до 30 декабря 1899 года.

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