[R-es] Conversión de datos a fechas
Carlos Ortega
cof en qualityexcellence.es
Vie Dic 30 11:05:50 CET 2016
Hola,
Con esto de las fechas, la verdad es que hay múltiples alternativas.
Por comentar algunas otras más:
+ as.Date()
- Con esta opción no hace falta cargar ningún paquete.
- Es una función a usar cuando tu columna de fechas es homogénea.
- Si el formato de tus fechas es homogénea también el paquete "chron"
(función dates()) te ayuda en la conversión.
- Además de as.Date() y strptime, tienes otras como as.POSIXct() y
as.POSIXlt()
- La función se usaría así:
- gastos$fecha <- as.Date(gastos$fecha , "%d%m%y")
+ anytime()
- Es una función de un nuevo paquete de Dirk Eddelbuettel (anytime).
- La ventaja de este paquete es que si tus fechas tienen codificaciones
muy diferentes: dmy, ymd, ... es capaz de "adivinar" los formatos
automáticamente.
- Esta ventaja también la tiene las funciones del paquete "lubridate".
Antes de realizar la conversión a formato fecha, lee un número grande de
líneas y convierte al formato más común.
- "lubridate()" tiene la ventaja de que luego extraer los días,
meses, años, semanas, días de la semana es muy sencillo.
- La función se usaría así:
- gastos$fecha <- anytime(gastos$fecha)
Sobre el tema de la zona horaria: "tz".
- Todas las funciones de fecha tienen este parámetro para que puedas
definir tu zona horaria. Todas las que estamos comentando en estas
diferentes soluciones: strptime, dmy, as.Date, anytime, etc.
- También lo incluye la función del paquete "readr" (read_csv2).
Internamente tiene un parámetro "locale" con un valor por defecto, pero que
puedes/debes modificar para definir tu zona horaria.
¡Feliz Año!
Carlos Ortega
www.qualityexcellence.es
El 29 de diciembre de 2016, 21:27, Horacio <horacio9573 en gmail.com> escribió:
> Buenas, esta pregunta es un poco elemental, pero estoy haciendo mis
> primeras experiencias en R.
>
> Yo tengo un CSV con el siguiente formato...
>
> fecha;Gastos;media móvil;Holt Winter
> 31/08/02;2498,5;;2498,5
> 29/09/02;2250,93;2320,63;2424,229
> 31/10/02;2212,46;2097,87;2360,6983
> 30/11/02;1830,22;2092,78;2201,55481
> ,,,,,,,
>
> los guardo en un dataframe con gastos=read.csv2("indice_gastos.csv"),
> ahora bien no sé como hace R pero guarda el primer campo como
> numérico,,,
>
> > mode(gastos$fecha)
> [1] "numeric"
>
> y no como el formato de fecha día/mes/año,,, entonces como puedo
> convertir dentro del dataframe gastos$fecha al tipo de datos fecha, o
> date o como se llame de tal manera que cuando haga el grafo
>
> plot(Gastos~fecha,data=gastos)
>
> salga como corresponda y no un chirimbolo como me parece,,,
>
> Saludos Horacio
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es