R lubridate конвертирует секунды до настоящего времени
У меня есть простой вопрос относительно пакета R lubridate. У меня есть серия временных меток за считанные секунды с эпохи. Я хочу преобразовать это в формат YYYY-MM-DD-HH. В базе R я могу сделать что-то подобное, чтобы сначала преобразовать его в формат даты
> x = as.POSIXct(1356129107,origin = "1970-01-01",tz = "GMT")
> x
[1] "2012-12-21 22:31:47 GMT"
Обратите внимание, что приведенное выше просто преобразует его в формат даты, а не в формате YYYY-MM-DD-HH. Как мне это сделать в lubridate? Как мне это сделать с использованием базы R?
Спасибо заблаговременно
Ответы
Ответ 1
Кортик правильный. Однако, если вы намерены использовать функции lubridate:
paste( year(dt), month(dt), mday(dt), hour(dt) sep="-")
Если, с другой стороны, вы хотите обрабатывать объекты POSIXct
так, как они должны были использоваться, то это должно удовлетворять:
format(x, format="%Y-%m-%d-%H")
Ответ 2
lubridate
имеет as_datetime()
, который имеет время эпохи UNIX как время начала по умолчанию, чтобы сделать это очень простым:
> as_datetime(1356129107)
[1] "2012-12-21 22:31:47 UTC"
более подробную информацию можно найти здесь: https://rdrr.io/cran/lubridate/man/as_date.html