Подтвердить что ты не робот

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?

Спасибо заблаговременно

4b9b3361

Ответ 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