Saber cómo funcionan las fechas en R forma parte de los conocimientos clave para realizar un procedimiento adecuado según el tipo de datos que te encuentres estudiando. El lenguaje R es estadístico por defecto, por eso es tan útil en estos contextos. Veamos cómo funcionan:
Las fechas son un dato cuantitativo que requiere de determinados procesos regidos por su carácter, por ello, conocer cómo debes de abordarlos durante el procesamiento de los datos es de suma importancia. Además, un buen data scientist debe contar con estos saberes para enfrentarse a las posibles soluciones de un tratamiento de los macrodatos.
De hecho, en general, la estadística forma parte de este reconocimiento de las preguntas, información y valor que pueden extraerse de los datos que se están estudiando. Por esta razón, en este post, te explicamos cómo funcionan las fechas en R.
¿Cómo funcionan las fechas en R?
Saber cómo funcionan las fechas en R es uno de los principales conocimientos para llevar a cabo un estudio estadístico, puesto que se encuentra en la primera etapa de identificación de los tipos de datos que se están abordando.
En efecto, las fechas en R son uno de los comandos básicos de la estadística Big Data junto a los factores, las matrices, los vectores, las listas, los valores infinitos, NULL o no disponibles, entre otros.
Por otra parte, a continuación te exponemos que existen diferentes funciones para almacenar fechas en R, las cuales son:
- Posixct: es el recubrimiento sobre un timestamp en segundos según los datos de fechas que hayas ingresado.
- Posixlt: es una lista de objetos que contiene la información de la fecha con la que te encuentras trabajando.
- as.Date(): Trabaja de manera exclusiva con fechas. El formato por defecto es “AAAA-MM-DD”, pero puede ajustarse usando símbolos como %d para día, %m para mes y %Y para año.
- chron(): Maneja fechas y tiempos por separados. Requiere instalar el paquete chron.
Veamos algunos ejemplos de estas funciones
A continuación se utilizarán las clases POSIXct y POSIXlt para manejar objetos de fechas y tiempos en R. Aquí está el análisis de lo que sucede en cada caso:
- POSIXct:
POSIXct
representa fechas y tiempos como el número de segundos desde el Unix Epoch (1 de enero de 1970). Es bastante buena para hacer cálculos, ya que internamente las fechas se almacenan como números enteros.
Veamos un ejemplo:
d1 <- as.POSIXct("2018-10-5 15:40", tz='CET')
d1
# Resultado: "2018-10-05 15:40:00 CEST"
- Aquí se convierte la cadena a un objeto POSIXct con la zona horaria CET.
- 1538746800 es el número de segundos desde el Unix Epoch.
d1 + 60*60*24
# Resultado: "2018-10-06 15:40:00 CEST"
- Sumar 60 * 60 * 24 agrega un día (en segundos) a la fecha original. POSIXct facilita estas operaciones matemáticas.
d2 <- as.POSIXct("5/10/2018 17:33", format = "%m/%d/%Y")
d2
# Resultado: "2018-05-10 UTC"
- Convierte la cadena a POSIXct usando un formato personalizado. Como no se especificó una zona horaria, utiliza UTC por defecto.
c(as.POSIXct("2018-01-01"), as.POSIXct("2018-01-02"), as.POSIXct("2018-01-03"))
# Resultado: "2018-01-01 UTC" "2018-01-02 UTC" "2018-01-03 UTC"
- Crea un vector de objetos
POSIXct
, útil para trabajar con series temporales.
- POSIXlt: este descompone la fecha en sus componentes individuales (año, mes, día, hora, minuto, segundo, etc.) y los almacena en una lista. Se usa para manipular o extraer elementos específicos.
Veamos un ejemplo:
- Qué sucede: Convierte la fecha a un objeto
POSIXlt
. Por defecto, la zona horaria es UTC.
d3$mday <- 6
d3
# Resultado: "2018-04-06 UTC"
- Como POSIXlt almacena componentes como una lista, puedes modificar directamente el día (mday), cambiando la fecha.
str(d3)
# Resultado: POSIXlt[1:1], format: "2018-04-06"
- Muestra la estructura del objeto, indicando que pertenece a la clase POSIXlt.
df <- data.frame(fecha = c(as.POSIXlt("2018-01-01"), as.POSIXlt("2018-01-02"), as.POSIXlt("2018-01-03")))
str(df)
# Resultado: 'data.frame': 3 obs. of 1 variable: $ fecha: POSIXct, format: "2018-01-01" ...
- Al almacenar objetos POSIXlt en un data.frame, automáticamente se convierten a POSIXct porque este formato es más compacto.
- as.Date:
# Crear una fecha en un formato específico
fecha <- as.Date("15JUN1998", format = "%d%b%Y")
print(fecha)
# Resultado: "1998-06-15"
- chron:
# Cargar la librería
library(chron)
# Crear fechas y tiempos por separado
fechas <- dates(c("02/27/92", "03/01/92", "01/14/92"))
horas <- times(c("12:34:56", "08:20:15", "16:45:30"))
# Combinarlas en un objeto chron
fechas_horas <- chron(dates = fechas, times = horas)
print(fechas_horas)
# Resultado:
# (02/27/92 12:34:56) (03/01/92 08:20:15) (01/14/92 16:45:30)
Paquete lubridate para manejo de fechas en R
Lubridate no es una función para manejo de fechas en R como tal, sino un paquete adicional que se instala para facilitar este proceso de fechas y tiempos en R. Debe instalarse y cargarse antes de usarlo, ya que no viene incluido de forma predeterminada en la instalación de R. Veamos su uso:
- Instalar Lubridate:
install.packages("lubridate")
- Cargar lubridate:
library(lubridate)
Veamos un breve ejemplo:
library(lubridate)
fecha <- ymd_hms("2024-11-21 14:30:00", tz = "UTC")
year <- year(fecha) # Extraer el año
fecha_modificada <- fecha + days(1) # Sumar un día
Ahora que comprendes este tipo de comandos básicos para fechas en R, te recomendamos realizar este ejemplo y muchos más parecidos para que, en la práctica, ahondes en el uso de este tipo de comandos a los que tendrás que enfrentarte como un buen data scientist.
En el desarrollo de esta post, te explicamos cómo funcionan las fechas en R para el desarrollo de un estudio estadístico en el manejo de los macrodatos, sin embargo, este tipo de datos cuantitativos puede exigir otro tipo de procedimientos según el carácter del conjunto de datos procesados. Por este motivo, resulta necesario seguir aprendiendo al respecto.
Si aún no sabes cómo, en KeepCoding te ofrecemos el Bootcamp Data Science. Por medio de este, se te presentarán las teorías del aprendizaje automático con énfasis en algoritmos de regresión y clasificación. De manera que, con el tiempo, serás capaz de conocer las ventajas y desventajas de los distintos algoritmos analizados.
Además, llegarás a las buenas prácticas en el entrenamiento de modelos de aprendizaje automático, gracias a que se fusionarán los fundamentos teóricos con ejemplos prácticos y realistas. ¡Inscríbete y empieza ahora!