Cómo modificar fechas en R

R utiliza un formato de fechas diferente al que utilizamos nosotros, es decir, ddmmaaaa o dd/mm/aaaa, etc., por lo que tenemos que realizar una modificación del formato, la cual se puede realizar después de haber cargado los datos, en el caso de que los archivos sean pequeños, o durante la carga del archivo, que es lo que se debe hacer cuando los archivos tienen un tamaño considerable. El motivo de hacerlo durante la carga es que la duración del proceso viene determinada por el componente de nuestro equipo más lento, en este caso el disco duro, que es donde está almacenado nuestro archivo, y así, aprovechando el tiempo de lectura de disco nuestro procesador puede estar al mismo tiempo realizando procesos de modificación de los datos. Es cierto que si hablamos de discos de estado sólido la cosa sería muy distinta porque no sería tan lenta, pero aún así es buena costumbre realizar las cosas bien.

Cómo modificar fechas en R

Teniendo claro que lo mejor es modificar los datos aprovechando el tiempo de carga, voy a mostrar un método muy sencillo para modificar las fechas que se leen de un documento csv en un data frame. Lo primero que hay que realizar es crear una nueva clase con setClass() y posteriormente utilizar setAs() para asignarle el formato.

El código sería el siguiente:

En este caso from es el dato obtenido del csv. Ahora lo que hay que hacer es indicarle al método read.table() o read.csv() que lo tiene que transformar, y esto se realiza a través del colClasses, que es el parámetro de estos métodos que se utiliza para especificar qué tipo de dato se lee. Aprovecho la oportunidad para explicar que si durante la lectura no se indica nada, R lee los datos como factores si no sabe qué tipo asignar, lo cual puede aumentar el tiempo de carga hasta 5 veces o incluso más, por lo que siempre es aconsejable especificar las clases mediante colClasses.

Una vez asignado el valor, ya podemos cargar el archivo:

Como podéis ver también he utilizado el parámetro stringsAsFactors = FALSE. De esta manera le indico que las cadenas las tiene que clasificar como character.

 

 

Comentarios y Respuestas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">