Foro de debate

datos de fecha

datos de fecha

de Aaron Trujillo Santana -
Número de respuestas: 6
buenos dias. tengo un fichero excel con datos de fecha en este formato "02-07-03"(dia-mes-año)y al leerlo con el R me los lee como un numero entero y no como una fecha como puedo cambiar esto. creo k tiene algo de relacion con numero julianos o gregorianos.GRACIAS
En respuesta a Aaron Trujillo Santana

Re: datos de fecha

de Antonio Jesús Arriaza Gómez -
A ver si te esto te ayuda:

Primero se convierte la columna fechas en clase caracter y luego en clase date.

> datos$F1<-as.character(datos$F1)
> datos$F1<-as.Date(datos$F1,"%Y-%m-%d")

Nota:
%Y se refiere al año con cuatro dígitos. Ej: 2007
%y es el año con sólo dos dígitos.
%m son los meses
%d son los días.

Ten en cuenta que debes escribir la orden as.Date() con el formato en el que estén tus fechas. Si por ejemplo tienes "14/05/09" debes poner:
>as.Date("14/05/09","%d/%m/%y")

Un saludo, Antonio.
En respuesta a Antonio Jesús Arriaza Gómez

Re: datos de fecha

de Aaron Trujillo Santana -
muchas gracias Antonio pero he intentado lo que me as dicho y no me sale bien, ya que me pone todos los datos de fechas con el mismo valor. te escribo de forma mas detallada lo que tengo y lo que he echo a ver si me puedes ayudar. GRACIAS
este es el formato de la fecha en el archivo original:
$ FECHA.DESC.: num 39255 39259 39269 39282 39301 ...
utilizo tu sentencia: datos$FECHAS:DESC<-as.character(datos$FECHAS.DESC) y me lo convierte asi:
chr [1:834] "39255" "39259" "39269" "39282" "39301" "39185" "39185" "39185" "39191" "39228" "39291" "39306" "39307" "39330" "39352" ...
ahora utilizo la otra sentencia: datos$FECHAS.DESC<-as.Date(datos$FECHAS.DESC,"%d-%m-%y") y me aparecen la variable llena de NA por lo que si modifico la sentencia poniendo el valor de la 1º fecha :datos$FECHAS.DESC<-as.Date("22-06-07","%d-%m-%y") y obtengo una variable donde todos los valores son el valor de la fecha puesto , no me respeta las fechas originales, las que si me aparecen en el excel.
Sabes como puedo solucionarlo. MUCHAS GRACIAS


En respuesta a Aaron Trujillo Santana

Re: datos de fecha

de Manuel Muñoz Márquez -
El motivo es que internamente las fechas se almacenan como un número, se me ocurren dos opciones:

1. Haces que excel convierta las fechas a carácter y luego haces lo que te ha comentado Antonio.

2. Utilizas otra variante de la función:
> x<-c(39255 ,39259,39269,39282,39301)
> as.Date(x, origin="1900-01-01")
[1] "2007-06-24" "2007-06-28" "2007-07-08" "2007-07-21" "2007-08-09"
En caso necesario cambia el origen (origin).

Saludos.

En respuesta a Manuel Muñoz Márquez

Re: datos de fecha

de Aaron Trujillo Santana -
gracias manuel, la verdad es que asi se me las convierte en fechas pero con un pequeño problema,las fechas originales y las que me coloca el R aplicando tu sentencia salen desplazadas dos dias, es decir las que me colocan el R son dos dias antes que las originales. Ejemplo fecha original 24-07-07 fecha R: 26-07-07 sabes como puedo eliminar estos dos dias de desfase. intente cambiar el origin pero no funciona.GRACIAS
En respuesta a Aaron Trujillo Santana

Re: datos de fecha

de Manuel Muñoz Márquez -
¿Qué origen estás poniendo? A mí me funciona.

Ten en cuenta que en origen el día es el último número.

> x<-c(39255 ,39259,39269,39282,39301)
> as.Date(x, origin="1900-01-01")
[1] "2007-06-24" "2007-06-28" "2007-07-08" "2007-07-21" "2007-08-09"
> as.Date(x, origin="1900-01-03")
[1] "2007-06-26" "2007-06-30" "2007-07-10" "2007-07-23" "2007-08-11"
> as.Date(x, origin="1910-02-03")
[1] "2017-07-26" "2017-07-30" "2017-08-09" "2017-08-22" "2017-09-10"

Saludos.