Una manera es adaptando el vector HORA.  Utilizando la solucion de Miguel
Angel seria algo como lo siguiente:

HORA <- c("1206","1854","054")
HORA <- formatC(as.numeric(HORA), width = 4, flag = "0")
substr(strptime(HORA,format="%H%M"),12,16)
# [1] "12:06" "18:54" "00:54"

Saludos,
Jorge.-


2013/3/8 <miguel.angel.rodriguez.muinos@sergas.es>

> Hola Carlos.
>
> Con mi propuesta sucede lo mismo....
> Por lo que tampoco es la solución.
>
> > HORA=c("1206","1854","054")
> > hora=substr(strptime(HORA,format="%H%M"),12,16)
> > hora
> [1] "12:06" "18:54" "05:04"
>
> Un saludo,
> Miguel.
>
>
>
>
>
> -----Mensaje original-----
> De: r-help-es-bounces@r-project.org [mailto:
> r-help-es-bounces@r-project.org] En nombre de Carlos Ortega
> Enviado el: jueves, 07 de marzo de 2013 14:57
> Para: daniel
> CC: JC A; r-help-es@r-project.org
> Asunto: Re: [R-es] Convertir eh hora
>
> Hola,
>
> Sí, tenéis razón...
>
> Con parse_date_time(), aunque cerca, resuelve el problema con los meses de
> ymd_hms() pero no el de los 054:
>
> > parse_date_time(x, "%y%m%d %H%M")
>  3 parsed with %Y%m%d             %H%M
> [1] "2012-10-07 12:06:00 UTC" "2011-06-22 18:54:00 UTC" "2011-06-23
> 05:04:00 UTC"
>
> Saludos,
> Carlos.
>
>
> El 7 de marzo de 2013 14:35, daniel <daniel319@gmail.com> escribió:
>
> > Creo que falta algo en la función de lubridate
> >
> > ymd_hms(x, truncated=3)
> >
> >
> > Pero aún así no se si resuelve lo que quiere JC A en cuando a si
> > '20110623             054'  es
> > 2012-06-23 00:54  o
> > 2012-06-23 05:04
> >
> > Daniel Merino
> >
> >
> > El día 7 de marzo de 2013 10:29, Jorge I Velez
> > <jorgeivanvelez@gmail.com> escribió:
> > > Gracias, Carlos.   Estaba a punto de mencionar esa funcion, pero no
> creo
> > que
> > > realice lo que Daniel necesita.  Por ejemplo la primera entrada de x
> > > es
> > > "20121007  1206"  y con lubridate el resultado es 2020-12-10  07:12:06.
> >  Es
> > > claro que algo no esta bien.   --JIV
> > >
> > >
> > > 2013/3/8 Carlos Ortega <cof@qualityexcellence.es>
> > >>
> > >> Hola,
> > >>
> > >> Otra opción es con el paquete "lubridate". Con la función "ymd_hms()"
> > que
> > >> prueba varias opciones hasta encontrar la recurrencia del formato.
> > >>
> > >> Con solo una función se resuelve:
> > >>
> > >> > library(lubridate)
> > >> > x <- c('20121007             1206', '20110622             1854',
> > >> +        '20110623             054')
> > >> >
> > >> > ymd_hms(x)
> > >>  3 parsed with %y%m%d%H             %M%S
> > >> [1] "2020-12-10 07:12:06 UTC" "2020-11-06 22:18:54 UTC" "2020-11-06
> > >> 23:05:04 UTC"
> > >>
> > >> Saludos,
> > >> Carlos Ortega
> > >> www.qualityexcellence.es
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> El 7 de marzo de 2013 13:48, daniel <daniel319@gmail.com> escribió:
> > >>
> > >> > Primero fijate si los datos respetan el ejemplo que enviastes
> > >> > (lugar de los años, meses, dias, horas y minutos, en especial la
> > >> > cantidad de dígitos para cada uno, para modificar la función si
> > >> > es necesario. A diferencia de Miguel supongo que en el ejemplo
> > >> > donde hora:minuto es 054, lo que representa es 0 horas y 54
> > >> > minutos, si mi interpretación es incorrecta la solución de Miguel
> > >> > es la correcta..Si alguien puede contribuir con algo más genérico
> > >> > se agradecerá, pero para empezar esta es mi contribución
> > >> >
> > >> >
> > >> > x <- c('20121007             1206', '20110622             1854',
> > >> > '20110623             054')
> > >> >
> > >> > tiempo <- function(x) {
> > >> > xF <- as.POSIXlt( strptime(x, '%Y%m%d %H%M')) xT <- as.POSIXlt(
> > >> > strptime( paste(substr(x, 1, max(gregexpr(" ", x)[[1]])), 0,
> > >> > substr(x,max(gregexpr(" ", x)[[1]])+1,nchar( x)), sep=""),
> > >> > '%Y%m%d %H%M')) if((nchar(x)-max(gregexpr(" ", x)[[1]])) == 3) xT
> > >> > else xF }
> > >> >
> > >> > lapply(x, tiempo)
> > >> >
> > >> > Daniel Merino
> > >> >
> > >> >
> > >> >
> > >> > El día 7 de marzo de 2013 09:04, JC A <j_arronte@hotmail.com>
> > escribió:
> > >> > >
> > >> > >
> > >> > >
> > >> > > Hola a tod@s,
> > >> > >
> > >> > > Me han mandado una base de datos y al abrirla me he encontrado
> > >> > > con
> > la
> > >> > fecha y la hora en el siguiente formato:
> > >> > >
> > >> > >
> > >> > >
> > >> > > FECHA                  HORA
> > >> > >
> > >> > > 20121007             1206
> > >> > >
> > >> > > 20110622             1854
> > >> > >
> > >> > > 20110623             054
> > >> > >
> > >> > >
> > >> > > He conseguido que la Fecha me quedara en el formato dd/mm/aaaa
> > >> > > mediante
> > >> > el script
> > >> > >
> > >> > > db[, "FECHA"] <- as.Date(as.character(db[, "FECHA"]),format =
> > >> > > "%Y%m%d")
> > >> > > Sin embargo, con la hora todavía no he dado con la forma. Se me
> > >> > > está
> > >> > pasando algo por alto y no doy con ello
> > >> > >
> > >> > > ¿Alguna idea?
> > >> > >
> > >> > > Un saludo y Gracias
> > >> > >
> > >> > > Juan Carlos
> > >> > >
> > >> > >
> > >> > > ***************************************
> > >> > > Si las cuerdas del trapecio las corté fue para subir y atarlas
> > >> > > y ver a la luna otra vez.
> > >> > > Y volverlas a cortar una y mil veces y boquear como los peces
> > >> > > cuando les toca perder.
> > >> > >
> > >> > >
> > >> > >         [[alternative HTML version deleted]]
> > >> > >
> > >> > >
> > >> > > _______________________________________________
> > >> > > R-help-es mailing list
> > >> > > R-help-es@r-project.org
> > >> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Daniel
> > >> >
> > >> > _______________________________________________
> > >> > R-help-es mailing list
> > >> > R-help-es@r-project.org
> > >> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Saludos,
> > >> Carlos Ortega
> > >> www.qualityexcellence.es
> > >>
> > >>         [[alternative HTML version deleted]]
> > >>
> > >>
> > >> _______________________________________________
> > >> R-help-es mailing list
> > >> R-help-es@r-project.org
> > >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >>
> > >
> >
> >
> >
> > --
> > Daniel
> >
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>         [[alternative HTML version deleted]]
>
>
> Nota: A información contida nesta mensaxe e os seus posibles documentos
> adxuntos é privada e confidencial e está dirixida únicamente ó seu
> destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
> por favor elimínea. A distribución ou copia desta mensaxe non está
> autorizada.
>
> Nota: La información contenida en este mensaje y sus posibles documentos
> adjuntos es privada y confidencial y está dirigida únicamente a su
> destinatario/a. Si usted no es el/la destinatario/a original de este
> mensaje, por favor elimínelo. La distribución o copia de este mensaje no
> está autorizada.
>
> See more languages: http://www.sergas.es/aviso_confidencialidad.htm
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]

