[R-es] problema con campos que tienen formato fecha

Angela Andrea Camargo Sanabria angela.andrea.camargo en gmail.com
Mie Ago 27 22:01:18 CEST 2014


Gracias por los comentarios. Finalmente combiné el uso de la función
difftime con el de vectores para guardr cada jna de mis variables con su
formato particular.

Saludos,

El martes, 26 de agosto de 2014, Pedro Concejero Cerezo <
pedro.concejerocerezo en telefonica.com> escribió:

> (deliberadamente sin acentos porque "pasan cosas raras")
> Hola, Angela,
> En tu codigo no observo ninguna conversion de tus datos de entrada a
> fechas.
> Lo mas habitual es tener la fecha con o sin hora con formato cadena, con
> los digitos separados por espacio, "-" o "/".
> No hace falta que cargues lubridate para leer o convertir fechas. Hay dos
> funciones en el base, as.Date y as.POSIXct
> A continuación un ejemplito, solo resaltar que si el formato es estandar
> con as.POSIXct no tienes que hacer practicamente nada, y si no tienes que
> decirle a la funcion que formato tiene tu fecha. Para esto yo siempre acudo
> a la estupenda reference card
>  http://cran.r-project.org/doc/contrib/Short-refcard.pdf
> (segunda pagina a la derecha)
>
> Espero que sea útil!
> Pedro
>
> # Ejemplo conversión cadenas a fechas
> # 1 con as.Date
>
> cadena_fecha1 <- "2011-03-27 01:30:00"
> cadena_fecha2 <- "31/10/2010 01:30:00"
>
> fecha1 <- as.Date(cadena_fecha1, "%Y-%m-%d %H:%M:%S")
> fecha1; class(fecha1)
>
> fecha2 <- as.Date(cadena_fecha2, "%d/%m/%Y %H:%M:%S")
> fecha2; class(fecha2)
>
> fecha3 <- fecha1 - fecha2
> fecha3; class(fecha3)
>
> # 2 con as.POSIXct
>
> fecha1 <- as.POSIXct(cadena_fecha1) # Sin opciones porque tiene formato
> estandar yyyy-mm-dd
> fecha1; class(fecha1)
>
> fecha2 <- as.POSIXct(cadena_fecha2)
> fecha2; class(fecha2)  # Sale mal porque toma estandar de fecha inglesa
> fecha2 <- as.POSIXct(cadena_fecha2, "%d/%m/%Y %H:%M:%S")
> fecha2; class(fecha2)  # Sale mal porque no sabe la zona horaria -ejemplo
> tomado de ?as.POSIXct
> fecha2 <- as.POSIXct(cadena_fecha2, "%d/%m/%Y %H:%M:%S", tz = "CET")
> fecha2; class(fecha2)  # Ahora sí sale bien
>
> fecha3 <- fecha1 - fecha2
> fecha3; class(fecha3)
>
>
>
> El 26/08/2014 2:19, r-help-es-request en r-project.org <javascript:;><mailto:
> r-help-es-request en r-project.org <javascript:;>> escribió:
>
> BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t")
> #attach (BASE)
> dim (BASE)
>
> #library (lubridate)
>
> #convertir a formato de fecha y hora
> BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" "))))
>
> names (BASE)[12]<-"Time2"
>
> #empieza rutina para calcular duraci?e visitas
> visitas <- data.frame ()
>
> n<-1
> narbol <- 1
>
> while (n <= dim(BASE)[1]) {
>   m = n
>   if (n < dim (BASE)[1]) {
>     while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) {m=m+1}
>     if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}}
>
>   if (m == n) { (visitas[narbol,1]<-0) }
>   else
>   {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])}
>   visitas[narbol,2]<-BASE$SpeciesID[n]
>   visitas[narbol,3]<-BASE$StationID[n]
>   visitas[narbol,4]<-BASE$Time2[n]
>   visitas[narbol,5]<-BASE$Time2[m]
>
>   narbol <- narbol + 1
>   n = m+1
> }
>
> colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", "FechaF")
>
>
>
> --
> Pedro Concejero
> BI & Big Data - Internal Exploitation - Telefónica I+D<http://www.tid.es>
> E-mail: pedro.concejerocerezo en telefonica.com <javascript:;><mailto:
> pedro.concejerocerezo en telefonica.com <javascript:;>>
> skype: pedro.concejero
> twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro>
> linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es>
> Únete a la lista R en español<
> https://stat.ethz.ch/mailman/listinfo/r-help-es#%21> y a tu gRupo local
> R, el mío es el gRupo R madRid <
> http://r-es.org/Grupo+de+Inter%C3%A9s+Local+de+Madrid+-+GIL+Madrid&structure=Comunidad
> >
>
> ________________________________
>
> Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario,
> puede contener información privilegiada o confidencial y es para uso
> exclusivo de la persona o entidad de destino. Si no es usted. el
> destinatario indicado, queda notificado de que la lectura, utilización,
> divulgación y/o copia sin autorización puede estar prohibida en virtud de
> la legislación vigente. Si ha recibido este mensaje por error, le rogamos
> que nos lo comunique inmediatamente por esta misma vía y proceda a su
> destrucción.
>
> The information contained in this transmission is privileged and
> confidential information intended only for the use of the individual or
> entity named above. If the reader of this message is not the intended
> recipient, you are hereby notified that any dissemination, distribution or
> copying of this communication is strictly prohibited. If you have received
> this transmission in error, do not read it. Please immediately reply to the
> sender that you have received this communication in error and then delete
> it.
>
> Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário,
> pode conter informação privilegiada ou confidencial e é para uso exclusivo
> da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário
> indicado, fica notificado de que a leitura, utilização, divulgação e/ou
> cópia sem autorização pode estar proibida em virtude da legislação vigente.
> Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique
> imediatamente por esta mesma via e proceda a sua destruição
>
>         [[alternative HTML version deleted]]
>
>

-- 
Enviado con Gmail Mobile

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es