Buenos días, Tengo una lista de programas de televisión con sus horas de inicio y me gustaría encontrar la duración de cada uno. Para ello utilizo *strptime* para convertir las horas en formato *POSIXlt *y las resto con la función *difftime* . No tengo ningún problema salvo cuando un programa comienza antes de las 12 de la noche y termina después de la medianoche. Os pongo un ejemplo: horai <- c("23:45", "01:50") horai.t <- strptime( horai, "%H:%M" ) dur<-as.numeric(difftime(horai.t[2],horai.t[1],units ="min")) [1] -1315 El resultado debería ser 125 minutos, pero creo que R entiende que la 1:50 es de la madrugada que el mismo día. ¿Se os ocurre alguna forma de solucionarlo? Muchas gracias!! -- Rubén. [[alternative HTML version deleted]]
Pues lo más rápido quizá sea sumarle los minutos totales que tiene un día a los que te salgan negativos. -1315 + 24*60 = 125 min Un saludo Álvaro El 25/11/19 a las 9:36, Ruben Tobalina Ramirez escribió:> Buenos días, > > Tengo una lista de programas de televisión con sus horas de inicio y me > gustaría encontrar la duración de cada uno. Para ello utilizo *strptime* > para convertir las horas en formato *POSIXlt *y las resto con la función > *difftime* . No tengo ningún problema salvo cuando un programa comienza > antes de las 12 de la noche y termina después de la medianoche. Os pongo un > ejemplo: > > horai <- c("23:45", "01:50") > horai.t <- strptime( horai, "%H:%M" ) > > dur<-as.numeric(difftime(horai.t[2],horai.t[1],units ="min")) > > [1] -1315 > > El resultado debería ser 125 minutos, pero creo que R entiende que la 1:50 > es de la madrugada que el mismo día. > > ¿Se os ocurre alguna forma de solucionarlo? > > Muchas gracias!! >
Pues es buena solución, muchas gracias Álvaro. El lun., 25 nov. 2019 a las 10:25, Álvaro Hernández Vicente (<alvarohv en um.es>) escribió:> Pues lo más rápido quizá sea sumarle los minutos totales que tiene un > día a los que te salgan negativos. > > -1315 + 24*60 = 125 min > > Un saludo > Álvaro > > El 25/11/19 a las 9:36, Ruben Tobalina Ramirez escribió: > > Buenos días, > > > > Tengo una lista de programas de televisión con sus horas de inicio y me > > gustaría encontrar la duración de cada uno. Para ello utilizo *strptime* > > para convertir las horas en formato *POSIXlt *y las resto con la función > > *difftime* . No tengo ningún problema salvo cuando un programa comienza > > antes de las 12 de la noche y termina después de la medianoche. Os pongo > un > > ejemplo: > > > > horai <- c("23:45", "01:50") > > horai.t <- strptime( horai, "%H:%M" ) > > > > dur<-as.numeric(difftime(horai.t[2],horai.t[1],units ="min")) > > > > [1] -1315 > > > > El resultado debería ser 125 minutos, pero creo que R entiende que la > 1:50 > > es de la madrugada que el mismo día. > > > > ¿Se os ocurre alguna forma de solucionarlo? > > > > Muchas gracias!! > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Rubén. [[alternative HTML version deleted]]