Перевести дробь дня в POSIX раз в R - PullRequest
7 голосов
/ 02 февраля 2011

У меня есть набор данных, который кодирует дату-время в две отдельные переменные.Обычно я просто вставляю их вместе в as.POSIXct и продолжаю.Тем не менее, дата указывается в виде строки, а время дня - в виде доли 24 часа - например, 12 часов вечера - 0,5, 9:30 утра - 0,1458333 и т. Д.

Не все так сложночтобы преобразовать дробные дни в часы, но я бы предпочел использовать уже существующую функцию, если это возможно.Существует ли что-то подобное в базе R?Пакет?

Если он используется, это поле времени Excel (xlsx), импортированное в R через RODBC.

РЕДАКТИРОВАТЬ Как ни странно, при повторном рассмотрении этой проблемы время теперь считывается вкак POSIXct.Не уверен, что с этим делать.

Ответы [ 2 ]

6 голосов
/ 02 февраля 2011

В R News 4/1 В статье службы поддержки есть раздел о чтении дат Excel в R.

5 голосов
/ 02 февраля 2011

Значения POSIXct - это просто количество секунд с полуночи GMT 1970-01-01. (Так что вам нужно обратить внимание на смещение от UTC.) Вы можете использовать часть даты и добавить количество дней, умноженное на 24 * 3600 (as.Date (dtval), к вашему значению времени * 24 * 3600. статья в R News (которую он написал, спасибо, Габор.)

Вы не привели пример строки. Если вы получаете дату в виде строки, то as.Date (strDate) преобразует переменную "strDate" в класс Date, если она имеет формат "YYYY-MM-DD" или "YYYY / MM / DD". В противном случае коды форматирования находятся на странице? Strptime.

Если у вас есть переменная POSIXct, вы можете просто добавить количество секунд. В этом примере добавьте 30 минут до полуночи сегодня, 1 февраля 2011 г. (в моем часовом поясе, который называется UTC-5):

> as.POSIXct(as.Date("2011-02-01")) +30*60
[1] "2011-01-31 19:30:00 EST"

И это ваше время, добавленное к полуночи моего времени:

> as.POSIXct(as.Date("2011-02-01 00:00", tzone="UTC"))+3600*5 + 3600*24*timeval
[1] "2011-02-01 03:29:59 EST"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...