Форматирование меток времени - PullRequest
2 голосов
/ 07 апреля 2020

Я пытаюсь исправить и переформатировать временные метки в 24-часовом формате, однако им не хватает числа, достаточного для правильного использования функции POSIXct.

Вот пример даты и меток времени. Внутри фрейма данных есть столбец для года (например, 2018), дня недели в году (например, 305) и времени (например, 0).

Столбец ВРЕМЯ вызывает у меня проблемы. Значения выглядят как (0, 30, 100, 130, 200). В этом случае 0 должно быть 00:00:00, если отформатировано в формат% H:% M:% S. Моя проблема в том, что мне нужно выяснить, как это отформатировать.

Вот код, который я пробовал:

mt$date <- as.POSIXct(paste(mt$Year, mt$DOY, mt$Time), format = "%Y %j %H")

Спасибо за любую помощь, я уверен, что это, вероятно, легко исправить.

1 Ответ

0 голосов
/ 07 апреля 2020

Мы могли бы использовать sprintf для создания format

mt$date <- with(mt, as.POSIXct(paste0(Year, '-', DOY,' ', 
 sub('^(..)', '\\1:', sprintf('%04d', Time))), format = "%Y-%j %H:%M"))
mt$date
#[1] "2018-11-01 00:00:00 EDT" "2018-11-08 00:30:00 EST" "2018-06-24 01:00:00 EDT"
#[4] "2018-08-13 01:30:00 EDT" "2018-11-16 10:00:00 EST"

данных

mt <- structure(list(Year = c(2018, 2018, 2018, 2018, 2018), DOY = c(305, 
312, 175, 225, 320), Time = c(0, 30, 100, 130, 1000)),
class = "data.frame", row.names = c(NA, 
-5L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...