library(lubridate)
df <- tibble(var1 = c(0, 30, 830, 1400, NA), var2 = c("A", "A", "A", "A", "A"))
У меня есть набор числовых значений, представляющих 24 часа, например, 0 = 0:00, 30 = 0;30, 830 = 8:30, 1400 = 14:00. Я хотел бы преобразовать эти значения в поле времени в lubridate
. Однако я получаю следующее сообщение, когда пытаюсь использовать hm(df)
Warning message:
In .parse_hms(..., order = "HM", quiet = quiet) :
Some strings failed to parse, or all strings are NAs
Сначала добавьте переменное количество ведущих нулей, затем преобразуйте в posixct и, наконец, извлеките только часы и минуты.
strftime(strptime(sapply(paste0("0000", df), function(i) substring(i, nchar(i) - 3, nchar(i))), "%H%M"), format = "%H:%M")
00000 000030 0000830 00001400 0000NA
"00:00" "00:30" "08:30" "14:00" NA
просто замените df
на df$var1
Я изменил свой исходный пост, чтобы он был в фрейме данных. Если мой фрейм данных имеет несколько столбцов, как мне изменить ваш код, чтобы указать только столбец с моими числовыми переменными (
var1
)?