Facultad de Contaduría y Administración (UNAM - Unidad de Posgrado)

Maestría en Administración de las Organizaciones

Métodos Cuantitativos Aplicados a la Administración

Doctor:Carlos Rodríguez Contreras

alt text

alt text

¿Qué es el Paquete Lubridate y para qué se utiliza?

Lubridate es un paquete de R, que a partir de una serie de herramientas facilitan el análisis y manipulación de fechas. De esta manera es más sencillo trabajar con los datos del tiempo.

Creado por Garrett Grolemund y Hadley Wickham, las funciones que posee este paquete permiten leer una serie de cadenas en R que sirven para analizar datos de fechas y horas. Con la finalidad de facilitar el entendimiento de estas cadenas, los elementos del año (“y”), mes (“m”) y día (“d”) aparecen en las cadenas que permiten analizar los datos en R. En este sentido, las principales son: dmy, myd, ymd, dym, mdy, ymd_hms.

El paquete posee un analizador denominado POSIX que permite manipular los datos de manera más rápida y de esta manera poder analizar fechas parciales a través de una serie de cadenas de clase-periodo, o también conocidas como (Period-Class).

Para poder manipular las fechas y datos, el paquete distingue entre distintos momentos del tiempo, conocidos como “instantes” y entre intervalos de tiempo, los cuales se dividen en objetos de clase de duración, clase de período y clase de intervalo.

Usos y Ejemplos del Paquete Lubridate en RStudio

Para poder analizar los datos con este paquete, es necesario descargar de la librería el paquete “lubridate”, como se indica a continuación.

library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
## 
##     date

De esta manera, el paquete puede analizar por ejemplo fechas y horas, para ello, identifica el orden en el que aparecen de acuerdo con el año, mes o día y de esa manera los ordena en el mismo orden.

Ejemplos:

dmy("01/06/2017")
## [1] "2017-06-01"
mdy("06-01-2017")
## [1] "2017-06-01"
ymd("20170601")
## [1] "2017-06-01"

Asimismo, es posible también analizar datos de fecha si estos incluyen información como la hora, para ello, se debe añadir h, m y/o s al nombre de la función. Por lo regular, el formato de fecha más común en estos casos, y bajo el cual analiza la información lubridate es “Ymd_hms” (“Año,Mes,Día_Hora,Minuto,Segundo”). En este caso, lubridate proporcionará la información de la zona horaria (UTC- Ciudad de México)

Ejemplo:

arrive <- ymd_hms("2017-06-01 12:00:00")
arrive
## [1] "2017-06-01 12:00:00 UTC"

Siguiendo con el ejemplo de las ZONAS HORARIAS, lubridate permite manipular las fechas y horas dentro de estas zonas, por ejemplo, si nos localizamos en un país determinado, en este caso, Australia y tendremos una reunión de negocios vía satelital en otro país, en este caso, Chicago-Estados Unidos, el paquete de lubridate nos permite manipular los datos, para conocer la fecha, hora y zona horaria del lugar en que tendremos la cita.

Ejemplo:

meeting <- ymd_hms("2017-06-06 10:00:00", tz = "Pacific/Auckland")
with_tz(meeting, "America/Chicago")
## [1] "2017-06-05 17:00:00 CDT"

Como se observa en el resultado que nos arroja lubridate, la fecha y hora varían entre un país y otro, por lo que mientras que en Australia es 06 de junio del 2017 con una hora de las 10 de la mañana, en Chicago, será 05 de junio de 2017 con una hora de las 05 de la tarde. De esta manera, con esta función, es posible conocer las fechas y horas exactas de otros países.

Otra de las funciones interesantes que tiene el paquete es la posibilidad de REALIZAR ANÁLISIS ARITMÉTICOS con los datos de fecha y hora, de esta manera, lubridate nos proporcionará siempre los resultados matemáticamente precisos, por ejemplo, si deseamos conocer si un determinado año es bisiesto o no, nos arrojará la variable “TRUE” o “FALSE” dependiendo del caso, si colocamos una fecha determinada y a esta le deseamos agregar un año más, el paquete automáticamente lo realizará y mostrará la fecha sumándole el año de más que se precisa.

Ejemplos:

leap_year(2017)
## [1] FALSE

Se observa, que 2017 no es un año bisiesto. Caso contrario ocurre con el siguiente ejemplo en donde 2012 si lo es.

leap_year(2012)
## [1] TRUE

Ahora bien, para agregar un año más a una fecha determinada se realiza lo siguiente:

ymd(20160101) + years(1)
## [1] "2017-01-01"

También otra de las posibilidades que nos brinda lubridate es conocer información exacta sobre el tiempo transcurrido, lo cual puede ser en meses, dias, años, de esta manera, si queremos saber por ejemplo cuántas semanas han transcurrido en una fecha determinada, realizamos lo siguiente:

x <- ymd("2017-06-06")
week(x)
## [1] 23

Como se observa, en lo que va del año actual, hasta el 06 de junio del 2017, han transcurrido 23 semanas.

Conclusiones

En realidad el manejo del paquete lubridate ofrece una infinidad de opciones para manipular los datos de fecha y hora, así como realizar análisis estadísticos que nos permitan conocer información certera sobre el tiempo. Como se observó, son muchas las funciones que puede realizar el paquete, sólo por mencionar algunas de ellas realiza análisis sobre las horas, los días, las semanas, los meses, los minutos, los segundos sobre un período de tiempo determinado, puede mostrar información real de las zonas horarias, conocer la duración de un tiempo determinado, los periodos o intervalos que hay entre una fecha y otra, y muchas otras funciones que facilitan el manejo de este tipo de datos e información.

Fuentes de Consulta

Package Lubridate. (Septiembre 2016). Disponible en https://cran.r-project.org/web/packages/lubridate/lubridate.pdf

Do more with dates and times in R with lubridate 1.3.0 Disponible en https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html

Tutorial Lubridate (Abril 2016). Disponible en https://www.youtube.com/watch?v=hppJJ-wJh5k