Используйте sprintf
, чтобы преобразовать целое число в строку фиксированной ширины, а затем преобразовать его в объект времени.
x <- c(50, 55, 100, 105, 955, 1000)
as.POSIXct(sprintf("%04d", x), format = "%H%M", tz = "UTC")
#[1] "2019-11-04 00:50:00 UTC" "2019-11-04 00:55:00 UTC" "2019-11-04 01:00:00 UTC"
#[4] "2019-11-04 01:05:00 UTC" "2019-11-04 09:55:00 UTC" "2019-11-04 10:00:00 UTC"
Аналогичные результаты также могут быть достигнуты с stringr::str_pad
и strptime
strptime(stringr::str_pad(x, 4, pad = 0), format = "%H%M", tz = "UTC")
Или используя parse_date_time
lubridate::parse_date_time(sprintf("%04d", x), "HM")