Introducción

Este reporte presenta un análisis descriptivo de los datos de pasajeros aéreos en México durante 2015. Se examinarán las características principales del tráfico aéreo, identificando patrones por estado, aeropuerto y tipo de pasajero (nacional e internacional).


1. Carga y estructura del dataframe

# Cargar librerías necesarias
library(ggplot2)
library(dplyr)
library(tidyr)
library(knitr)

# Cargar los datos
datos <- read.csv("/Users/lorenaumana/Desktop/Curso R/datos/S5_ASA_estadisticasPasajeros.csv", 
                  stringsAsFactors = FALSE)

# Crear columnas adicionales para facilitar el análisis
datos$mes <- as.numeric(substr(datos$Anio.mes, 5, 6))
datos$total_pasajeros <- datos$Pasajeros.nacionales + datos$Pasajeros.internacionales

# Visualizar estructura
str(datos)
## 'data.frame':    216 obs. of  8 variables:
##  $ Anio.mes                 : int  201501 201501 201501 201501 201501 201501 201501 201501 201501 201501 ...
##  $ Codigo.IATA              : chr  "CEN" "CLQ" "CME" "CPE" ...
##  $ Descripcion              : chr  "Ciudad Obregon" "Colima" "Ciudad del Carmen" "Campeche" ...
##  $ Estado                   : chr  "Sonora" "Colima" "Campeche" "Campeche" ...
##  $ Pasajeros.nacionales     : int  17149 8486 56079 13264 13153 4695 1315 1050 6684 5609 ...
##  $ Pasajeros.internacionales: int  721 124 3126 215 0 139 386 2684 61 10 ...
##  $ mes                      : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ total_pasajeros          : int  17870 8610 59205 13479 13153 4834 1701 3734 6745 5619 ...
# Vista previa de los primeros registros
head(datos, 10) %>% kable()
Anio.mes Codigo.IATA Descripcion Estado Pasajeros.nacionales Pasajeros.internacionales mes total_pasajeros
201501 CEN Ciudad Obregon Sonora 17149 721 1 17870
201501 CLQ Colima Colima 8486 124 1 8610
201501 CME Ciudad del Carmen Campeche 56079 3126 1 59205
201501 CPE Campeche Campeche 13264 215 1 13479
201501 CTM Chetumal Quintana Roo 13153 0 1 13153
201501 CVM Ciudad Victoria Tamaulipas 4695 139 1 4834
201501 GYM Guaymas Sonora 1315 386 1 1701
201501 LTO Loreto Baja California Sur 1050 2684 1 3734
201501 MAM Matamoros Tamaulipas 6684 61 1 6745
201501 NLD Nuevo Laredo Tamaulipas 5609 10 1 5619

Interpretación: El dataframe contiene 216 registros de tráfico aéreo mensual en diferentes aeropuertos mexicanos durante 2015. Las variables incluyen información temporal (año-mes), identificación del aeropuerto (código IATA y descripción), ubicación geográfica (estado) y volúmenes de pasajeros diferenciados por tipo (nacionales e internacionales).


2. Resúmenes numéricos

# Seleccionar variables numéricas
vars_numericas <- datos %>% 
  select(Pasajeros.nacionales, Pasajeros.internacionales, total_pasajeros)

# Resumen estadístico general
summary(vars_numericas)
##  Pasajeros.nacionales Pasajeros.internacionales total_pasajeros
##  Min.   :   63        Min.   :   0.0            Min.   :   63  
##  1st Qu.: 1198        1st Qu.:   7.0            1st Qu.: 4463  
##  Median : 7947        Median : 107.0            Median : 8264  
##  Mean   :10608        Mean   : 818.2            Mean   :11427  
##  3rd Qu.:14884        3rd Qu.: 584.0            3rd Qu.:15079  
##  Max.   :56418        Max.   :7042.0            Max.   :59205
# Estadísticas descriptivas detalladas
estadisticas <- vars_numericas %>%
  summarise(across(everything(), 
                   list(Media = ~mean(., na.rm = TRUE),
                        Mediana = ~median(., na.rm = TRUE),
                        Desv_Std = ~sd(., na.rm = TRUE),
                        Mínimo = ~min(., na.rm = TRUE),
                        Máximo = ~max(., na.rm = TRUE)))) %>%
  pivot_longer(everything(), 
               names_to = c("Variable", "Estadística"), 
               names_sep = "_(?=[^_]+$)") %>%
  pivot_wider(names_from = Estadística, values_from = value)

kable(estadisticas, 
      digits = 0, 
      caption = "Estadísticas descriptivas de variables numéricas",
      format.args = list(big.mark = ","))
Estadísticas descriptivas de variables numéricas
Variable Media Mediana Std Mínimo Máximo
Pasajeros.nacionales 10,608 7,947 NA 63 56,418
Pasajeros.nacionales_Desv NA NA 11,610 NA NA
Pasajeros.internacionales 818 107 NA 0 7,042
Pasajeros.internacionales_Desv NA NA 1,523 NA NA
total_pasajeros 11,427 8,264 NA 63 59,205
total_pasajeros_Desv NA NA 12,311 NA NA

Interpretación: Los resúmenes numéricos revelan que en promedio se registraron 11,427 pasajeros totales por aeropuerto-mes. La alta desviación estándar indica una gran variabilidad entre aeropuertos, con algunos manejando volúmenes muy superiores al promedio. Los pasajeros nacionales representan la mayor proporción del tráfico aéreo.


3. Tablas de frecuencias para variables categóricas

# Tabla de frecuencia por Estado
cat("### Distribución por Estado\n\n")
## ### Distribución por Estado
tabla_estado <- datos %>%
  group_by(Estado) %>%
  summarise(Frecuencia = n(),
            Total_Pasajeros = sum(total_pasajeros)) %>%
  arrange(desc(Total_Pasajeros)) %>%
  mutate(Porcentaje = round(100 * Frecuencia / sum(Frecuencia), 2))

kable(tabla_estado, 
      caption = "Frecuencia de registros y total de pasajeros por Estado",
      format.args = list(big.mark = ","))
Frecuencia de registros y total de pasajeros por Estado
Estado Frecuencia Total_Pasajeros Porcentaje
Campeche 24 804,905 11.11
Puebla 24 330,623 11.11
Sonora 36 265,364 16.67
Tamaulipas 36 245,788 16.67
Oaxaca 12 185,330 5.56
Quintana Roo 12 179,377 5.56
Colima 12 113,583 5.56
Nayarit 12 113,043 5.56
Michoacan 12 110,067 5.56
Veracruz 12 60,575 5.56
Baja California Sur 12 57,907 5.56
San Luis Potosi 12 1,598 5.56
# Tabla de frecuencia por Aeropuerto (Top 15)
cat("\n\n### Top 15 Aeropuertos más frecuentes\n\n")
## 
## 
## ### Top 15 Aeropuertos más frecuentes
tabla_aeropuerto <- datos %>%
  group_by(Descripcion, Estado) %>%
  summarise(Registros = n(),
            Total_Pasajeros = sum(total_pasajeros),
            .groups = 'drop') %>%
  arrange(desc(Total_Pasajeros)) %>%
  head(15)

kable(tabla_aeropuerto, 
      caption = "Top 15 aeropuertos por volumen total de pasajeros",
      format.args = list(big.mark = ","))
Top 15 aeropuertos por volumen total de pasajeros
Descripcion Estado Registros Total_Pasajeros
Ciudad del Carmen Campeche 12 623,154
Puebla Puebla 12 327,811
Ciudad Obregon Sonora 12 245,492
Puerto Escondido Oaxaca 12 185,330
Campeche Campeche 12 181,751
Chetumal Quintana Roo 12 179,377
Colima Colima 12 113,583
Tepic Nayarit 12 113,043
Uruapan Michoacan 12 110,067
Matamoros Tamaulipas 12 97,654
Ciudad Victoria Tamaulipas 12 75,156
Nuevo Laredo Tamaulipas 12 72,978
Poza Rica Veracruz 12 60,575
Loreto Baja California Sur 12 57,907
Guaymas Sonora 12 16,895

Interpretación: Las tablas de frecuencia muestran que ciertos estados y aeropuertos concentran la mayor parte del tráfico aéreo. Los estados con mayor actividad aeroportuaria corresponden a las principales zonas metropolitanas del país, reflejando su importancia económica y poblacional.

4. Agregaciones y comportamientos interesantes

# Agregación 1: Total de pasajeros por estado
pasajeros_estado <- datos %>%
  group_by(Estado) %>%
  summarise(Total_Nacionales = sum(Pasajeros.nacionales),
            Total_Internacionales = sum(Pasajeros.internacionales),
            Total_General = sum(total_pasajeros),
            Porcentaje_Nacionales = round(100 * sum(Pasajeros.nacionales) / sum(total_pasajeros), 1)) %>%
  arrange(desc(Total_General)) %>%
  head(10)

kable(pasajeros_estado, 
      caption = "Top 10 estados con mayor número de pasajeros en 2015",
      format.args = list(big.mark = ","))
Top 10 estados con mayor número de pasajeros en 2015
Estado Total_Nacionales Total_Internacionales Total_General Porcentaje_Nacionales
Campeche 769,864 35,041 804,905 95.6
Puebla 267,567 63,056 330,623 80.9
Sonora 253,788 11,576 265,364 95.6
Tamaulipas 243,126 2,662 245,788 98.9
Oaxaca 181,706 3,624 185,330 98.0
Quintana Roo 179,259 118 179,377 99.9
Colima 112,656 927 113,583 99.2
Nayarit 113,043 0 113,043 100.0
Michoacan 95,635 14,432 110,067 86.9
Veracruz 60,575 0 60,575 100.0
# Agregación 2: Comportamiento mensual
pasajeros_mes <- datos %>%
  group_by(mes) %>%
  summarise(Promedio_Nacionales = mean(Pasajeros.nacionales),
            Promedio_Internacionales = mean(Pasajeros.internacionales),
            Total_Nacional = sum(Pasajeros.nacionales),
            Total_Internacional = sum(Pasajeros.internacionales),
            Total_Mes = sum(total_pasajeros)) %>%
  arrange(mes) %>%
  mutate(Mes = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
                 "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))

kable(pasajeros_mes %>% select(Mes, Total_Mes, Total_Nacional, Total_Internacional), 
      caption = "Volumen total de pasajeros por mes en 2015",
      format.args = list(big.mark = ","),
      col.names = c("Mes", "Total Pasajeros", "Nacional", "Internacional"))
Volumen total de pasajeros por mes en 2015
Mes Total Pasajeros Nacional Internacional
Enero 200,397 186,383 14,014
Febrero 175,127 161,468 13,659
Marzo 207,481 191,647 15,834
Abril 200,050 184,513 15,537
Mayo 200,170 184,818 15,352
Junio 198,253 184,373 13,880
Julio 223,230 208,912 14,318
Agosto 211,092 195,924 15,168
Septiembre 185,674 173,456 12,218
Octubre 207,051 192,252 14,799
Noviembre 217,746 201,733 16,013
Diciembre 241,889 225,940 15,949
# Agregación 3: Proporción nacional vs internacional por aeropuerto
proporcion_tipo <- datos %>%
  group_by(Descripcion, Estado) %>%
  summarise(Total_Nacionales = sum(Pasajeros.nacionales),
            Total_Internacionales = sum(Pasajeros.internacionales),
            Total = sum(total_pasajeros),
            Porcentaje_Internacional = round(100 * sum(Pasajeros.internacionales) / sum(total_pasajeros), 1),
            .groups = 'drop') %>%
  arrange(desc(Porcentaje_Internacional)) %>%
  head(10)

kable(proporcion_tipo, 
      caption = "Top 10 aeropuertos con mayor proporción de pasajeros internacionales",
      format.args = list(big.mark = ","))
Top 10 aeropuertos con mayor proporción de pasajeros internacionales
Descripcion Estado Total_Nacionales Total_Internacionales Total Porcentaje_Internacional
Loreto Baja California Sur 12,602 45,305 57,907 78.2
Guaymas Sonora 12,757 4,138 16,895 24.5
Puebla Puebla 264,755 63,056 327,811 19.2
Uruapan Michoacan 95,635 14,432 110,067 13.1
Nogales Sonora 2,622 355 2,977 11.9
Ciudad del Carmen Campeche 591,154 32,000 623,154 5.1
Ciudad Obregon Sonora 238,409 7,083 245,492 2.9
Ciudad Victoria Tamaulipas 73,491 1,665 75,156 2.2
Puerto Escondido Oaxaca 181,706 3,624 185,330 2.0
Campeche Campeche 178,710 3,041 181,751 1.7

Interpretación: Las agregaciones revelan patrones importantes: se observa que los aeropuertos con mayor tráfico corresponden a las zonas metropolitanas, mientras que los estados con menor flujo presentan alta variabilidad mensual. Además, se identifican meses con mayor demanda, probablemente asociados a temporadas vacacionales. Los aeropuertos turísticos muestran mayores proporciones de tráfico internacional.

5. Gráficos descriptivos

5.1 Histograma de pasajeros nacionales

ggplot(datos, aes(x = Pasajeros.nacionales)) +
  geom_histogram(bins = 30, fill = "steelblue", color = "black", alpha = 0.7) +
  labs(title = "Distribución de Pasajeros Nacionales",
       subtitle = "Frecuencia de registros según volumen de pasajeros nacionales en 2015",
       x = "Número de pasajeros nacionales",
       y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 11)) +
  scale_x_continuous(labels = scales::comma)

Interpretación: El histograma muestra una distribución fuertemente asimétrica hacia la derecha, con la mayoría de los registros concentrados en volúmenes bajos de pasajeros nacionales (menores a 50,000). Esto indica que la mayoría de los aeropuertos-mes tienen tráfico moderado, mientras que unos pocos presentan volúmenes excepcionales que pueden superar los 200,000 pasajeros mensuales.


5.2 Gráfico de barras: Total de pasajeros por estado

top_estados <- datos %>%
  group_by(Estado) %>%
  summarise(total = sum(total_pasajeros)) %>%
  arrange(desc(total)) %>%
  head(15)

ggplot(top_estados, aes(x = reorder(Estado, total), y = total)) +
  geom_bar(stat = "identity", fill = "coral", color = "black", alpha = 0.8) +
  coord_flip() +
  labs(title = "Top 15 Estados por Volumen Total de Pasajeros",
       subtitle = "Suma de pasajeros nacionales e internacionales en 2015",
       x = "Estado",
       y = "Total de pasajeros") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 11)) +
  scale_y_continuous(labels = scales::comma) +
  geom_text(aes(label = scales::comma(total)), hjust = -0.1, size = 3)

Interpretación: El gráfico de barras identifica claramente la concentración del tráfico aéreo en unos pocos estados. Los tres primeros estados acumulan la mayor parte del tráfico nacional, reflejando la importancia de sus aeropuertos como hubs principales de conectividad. Esta concentración coincide con las principales zonas metropolitanas y destinos turísticos del país.


5.3 Boxplot: Dispersión de pasajeros totales por mes

datos$mes_nombre <- factor(datos$mes, 
                           levels = 1:12,
                           labels = c("Ene", "Feb", "Mar", "Abr", "May", "Jun",
                                     "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"))

ggplot(datos, aes(x = mes_nombre, y = total_pasajeros)) +
  geom_boxplot(fill = "lightgreen", color = "darkgreen", alpha = 0.7, outlier.color = "red") +
  labs(title = "Distribución de Pasajeros Totales por Mes",
       subtitle = "Análisis de dispersión y valores atípicos en 2015",
       x = "Mes",
       y = "Total de pasajeros (nacionales + internacionales)") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 11)) +
  scale_y_continuous(labels = scales::comma)

Interpretación: El boxplot revela patrones estacionales en el tráfico aéreo. Se observa que ciertos meses como marzo, julio y diciembre presentan medianas más altas, probablemente asociados a periodos vacacionales (Semana Santa, vacaciones de verano y fin de año). Los valores atípicos superiores corresponden a aeropuertos con tráfico extraordinariamente alto.


5.4 Relación entre variable numérica y categórica: Pasajeros por tipo

# Preparar datos en formato largo
datos_largo <- datos %>%
  select(Descripcion, Estado, Pasajeros.nacionales, Pasajeros.internacionales) %>%
  pivot_longer(cols = c(Pasajeros.nacionales, Pasajeros.internacionales),
               names_to = "Tipo",
               values_to = "Pasajeros") %>%
  mutate(Tipo = ifelse(Tipo == "Pasajeros.nacionales", "Nacional", "Internacional"))

ggplot(datos_largo, aes(x = Tipo, y = Pasajeros, fill = Tipo)) +
  geom_violin(alpha = 0.6, trim = FALSE) +
  geom_boxplot(width = 0.2, alpha = 0.8, outlier.alpha = 0.3) +
  labs(title = "Distribución de Pasajeros por Tipo",
       subtitle = "Comparación entre pasajeros nacionales e internacionales",
       x = "Tipo de pasajero",
       y = "Número de pasajeros") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 11),
        legend.position = "none") +
  scale_y_continuous(labels = scales::comma) +
  scale_fill_manual(values = c("Nacional" = "#66C2A5", "Internacional" = "#FC8D62"))

Interpretación: La combinación de violin plot y boxplot permite comparar la distribución del tráfico nacional versus el internacional. Los pasajeros nacionales presentan mayor volumen promedio y mayor variabilidad, con una distribución que sugiere algunos aeropuertos con tráfico nacional muy intenso. El tráfico internacional, aunque generalmente menor, también muestra valores atípicos significativos en aeropuertos con fuerte vocación turística o de conectividad internacional.


5.5 Relación entre dos variables numéricas: Pasajeros nacionales vs internacionales

# Agregar por aeropuerto para mejor visualización
datos_aeropuerto <- datos %>%
  group_by(Descripcion, Estado) %>%
  summarise(Total_Nacionales = sum(Pasajeros.nacionales),
            Total_Internacionales = sum(Pasajeros.internacionales),
            .groups = 'drop')

ggplot(datos_aeropuerto, aes(x = Total_Nacionales, y = Total_Internacionales)) +
  geom_point(alpha = 0.6, color = "purple", size = 3) +
  geom_smooth(method = "lm", color = "red", se = TRUE, linewidth = 1) +
  labs(title = "Relación entre Pasajeros Nacionales e Internacionales",
       subtitle = "Correlación por aeropuerto - Totales anuales 2015",
       x = "Total de pasajeros nacionales",
       y = "Total de pasajeros internacionales") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 11)) +
  scale_x_continuous(labels = scales::comma) +
  scale_y_continuous(labels = scales::comma)

# Calcular coeficiente de correlación
correlacion <- cor(datos_aeropuerto$Total_Nacionales, 
                   datos_aeropuerto$Total_Internacionales)

Coeficiente de correlación de Pearson: 0.419

Interpretación: El diagrama de dispersión revela una correlación positiva moderada-alta (r = 0.419) entre el tráfico nacional e internacional. Esto indica que los aeropuertos con mayor volumen de pasajeros nacionales tienden también a manejar más tráfico internacional, sugiriendo economías de escala y una red de conectividad integrada. Sin embargo, existen aeropuertos especializados que se desvían de esta tendencia, algunos enfocados principalmente en tráfico doméstico y otros en conexiones internacionales.


Análisis complementario: Temporada alta vs baja

# Clasificar meses en temporadas
datos_temporada <- datos %>%
  mutate(Temporada = case_when(
    mes %in% c(7, 8, 12) ~ "Alta",
    mes %in% c(1, 2, 9) ~ "Baja",
    TRUE ~ "Media"
  ))

comparacion_temporada <- datos_temporada %>%
  group_by(Temporada) %>%
  summarise(Promedio_Total = mean(total_pasajeros),
            Total = sum(total_pasajeros),
            Registros = n())

kable(comparacion_temporada,
      caption = "Comparación de tráfico por temporada",
      format.args = list(big.mark = ","),
      digits = 0)
Comparación de tráfico por temporada
Temporada Promedio_Total Total Registros
Alta 12,522 676,211 54
Baja 10,393 561,198 54
Media 11,396 1,230,751 108
# Gráfico de comparación
ggplot(datos_temporada, aes(x = Temporada, y = total_pasajeros, fill = Temporada)) +
  geom_boxplot(alpha = 0.7) +
  labs(title = "Comparación de Volumen de Pasajeros por Temporada",
       subtitle = "Clasificación: Alta (Jul, Ago, Dic), Media (Mar-Jun, Oct-Nov), Baja (Ene, Feb, Sep)",
       x = "Temporada",
       y = "Total de pasajeros") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
        plot.subtitle = element_text(hjust = 0.5, size = 10),
        legend.position = "none") +
  scale_y_continuous(labels = scales::comma) +
  scale_fill_manual(values = c("Alta" = "#E41A1C", "Media" = "#FDB462", "Baja" = "#377EB8"))

Interpretación: El análisis por temporadas confirma la existencia de estacionalidad en el tráfico aéreo. Los meses de temporada alta muestran mayor volumen promedio de pasajeros, coincidiendo con periodos vacacionales tradicionales en México.


Conclusiones

  1. Concentración en pocos aeropuertos: La mayoría del tráfico aéreo se concentra en unos cuantos estados y aeropuertos grandes (principalmente en zonas metropolitanas). Estos funcionan como los aeropuertos principales del país.

  2. Más pasajeros nacionales que internacionales: Los vuelos nacionales tienen muchos más pasajeros que los internacionales. Sin embargo, los aeropuertos más grandes tienden a tener tanto tráfico nacional como internacional alto.

  3. Temporadas altas y bajas: Hay meses con más pasajeros que otros. Los picos se ven en julio, agosto y diciembre, que coinciden con las vacaciones escolares y de fin de año.

  4. Gran diferencia entre aeropuertos: Hay aeropuertos con pocos miles de pasajeros al mes y otros con cientos de miles. Esto depende del tamaño de la ciudad, la infraestructura disponible y la demanda de la región.

  5. Áreas de oportunidad: Los estados y aeropuertos con menos tráfico podrían beneficiarse de mejoras en conectividad e infraestructura para aumentar su uso.

En resumen, el sistema aeroportuario mexicano muestra una clara concentración en las principales ciudades, con patrones de demanda relacionados a periodos vacacionales y grandes diferencias entre aeropuertos pequeños y grandes.


Información de sesión

sessionInfo()
## R version 4.5.1 (2025-06-13)
## Platform: x86_64-apple-darwin20
## Running under: macOS Monterey 12.7.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRblas.0.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/Mexico_City
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitr_1.50    tidyr_1.3.1   dplyr_1.1.4   ggplot2_4.0.0
## 
## loaded via a namespace (and not attached):
##  [1] Matrix_1.7-3       gtable_0.3.6       jsonlite_2.0.0     compiler_4.5.1    
##  [5] tidyselect_1.2.1   jquerylib_0.1.4    splines_4.5.1      scales_1.4.0      
##  [9] yaml_2.3.10        fastmap_1.2.0      lattice_0.22-7     R6_2.6.1          
## [13] labeling_0.4.3     generics_0.1.4     tibble_3.3.0       bslib_0.9.0       
## [17] pillar_1.10.2      RColorBrewer_1.1-3 rlang_1.1.6        cachem_1.1.0      
## [21] xfun_0.52          sass_0.4.10        S7_0.2.0           cli_3.6.5         
## [25] withr_3.0.2        magrittr_2.0.3     mgcv_1.9-3         digest_0.6.37     
## [29] grid_4.5.1         rstudioapi_0.17.1  lifecycle_1.0.4    nlme_3.1-168      
## [33] vctrs_0.6.5        evaluate_1.0.4     glue_1.8.0         farver_2.1.2      
## [37] rmarkdown_2.29     purrr_1.0.4        tools_4.5.1        pkgconfig_2.0.3   
## [41] htmltools_0.5.8.1