преобразовать целое число в дату и время в R - PullRequest
0 голосов
/ 19 мая 2018

У меня есть столбец int со значениями, такими как 30, 2230, 130. Есть ли какая-либо функция, которую я мог бы преобразовать в формат времени, например 30 в 00:30 и 130 в 01:30?Я использовал:

format(strftime(col,format="%H:%M"), format="%H:%M") 

, но он вернул ошибку:

as.POSIXlt(x, tz=tz)::'origin' must be supplied

Мне также нужно добавить гг-мм-дд вдо времени после преобразования времени, поэтому конечный результат может быть как "1980-05-28 00:30", " 1980-05-28 22:30" и " 1980-05-28 01:30".

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете попробовать использовать as.POSIXct и sprintf вместе с paste для создания даты / времени:

as.POSIXct(paste("1980-05-28", sprintf("%04d",c(130, 2030, 1120, 30,0120)),sep = " "),
           format = "%Y-%m-%d %H%M")

# [1] "1980-05-28 01:30:00 BST" "1980-05-28 20:30:00 BST" "1980-05-28 11:20:00 BST"
# [4] "1980-05-28 00:30:00 BST" "1980-05-28 01:20:00 BST"

Примечание: Решение похоже на предложенное@ r2evans.Я попытался немного упростить это.

...