Tengo una columna "Tiempo" en R con un conjunto de valores de tiempo de caracteres en HH: MM: SS Sin embargo, algunas de las horas no tienen los segundos, lo que hace que la conversión de char a chron () sea imposible

Ejemplo:

Biblioteca (cron)

X <- c ("08:25:18", "08:25", "08:24:57", "08:24:47")

Quiero convertir x a chron (), pero sin los segundos convierte ese valor a N / A

¿Cómo puedo agregar: 00 segundos solo a aquellos que lo necesitan? Gracias

1
Michael Scott 27 jul. 2020 a las 20:26

1 respuesta

La mejor respuesta

Podríamos convertir a fecha y hora, format y luego aplicar el times

library(chron)
library(lubridate)
out1 <- times(format(parse_date_time(x, c('HMS', 'HM')), "%H:%M:%S"))
str(out1)
#'times' num [1:4] 08:25:18 08:25:00 08:24:57 08:24:47
# - attr(*, "format")= chr "h:m:s"

O especifique times en chron

chron(times = format(parse_date_time(x, c('HMS', 'HM')), "%H:%M:%S"))

O use as.ITime de data.table que funcionaría

library(data.table)
as.ITime(x)
#[1] "08:25:18" "08:25:00" "08:24:57" "08:24:47"
2
akrun 27 jul. 2020 a las 17:29