INTRODUCCIÓN

El Módulo sobre Eventos Culturales Seleccionados (MODECULT) genera información estadística sobre la asistencia a eventos culturales y la participación en actividades artísticas de la población en México. Lo anterior, a fin de proporcionar datos clave para contribuir al diseño de políticas públicas. Desde 2016 y hasta mayo de 2024, el módulo se levantó como parte de la Encuesta Nacional sobre Confianza del Consumidor (ENCO). A partir de 2025 el programa tiene una actualización conceptual y metodológica y se levanta con un operativo y muestra de viviendas independientes a la ENCO.

USANDO UNA BASE DE ESTE MÓDULO, CON LAS VARIABLES DE LAS PREGUNTAS p1_1 a p1_7 LOGRAMOS CONFIGURAR NUESTRO ENTORNO Y PROCESAR LOS DATOS.

Paso 1: Configuración del entorno y asignación de la ruta de trabajo

En este primer paso, le indicamos a R en qué carpeta de nuestra computadora se encuentra guardado el archivo del INEGI para que pueda localizarlo correctamente. Asimismo, verificamos que los paquetes readr, dplyr y tidyr estén instalados en el sistema y los cargamos a nuestra sesión de trabajo para habilitar las herramientas de manipulación de datos.

setwd("~/Conjunto de datos")

if(!require(readr)) install.packages("readr")
if(!require(dplyr)) install.packages("dplyr")
if(!require(tidyr)) install.packages("tidyr")

library(readr)
library(dplyr)
archivo_csv <- list.files(pattern = "^conjunto_de_datos_tmodecult")
base <- read_csv(archivo_csv)
base <- base %>%
  dplyr::mutate(dplyr::across(p1_1:p1_7, \(x) as.numeric(as.character(x))))
table(base$p1_1) 
## 
##    0    1    2    3    4    5    6    7    8   10   12   15   20   24   30 
## 3688  260  169   68   20   15    5    1    2    4    3    1    2    1    1
MEDIA_p1_1 <- mean(base$p1_1, na.rm = TRUE)
print(paste("Media de p1_1:", MEDIA_p1_1))
## [1] "Media de p1_1: 0.281839622641509"
table(base$p1_7)
## 
##    0    1    2    3    4    5   20   40 
## 4186   29   12    6    1    4    1    1
table(base$p1_7_esp)
## 
##                    CABALGATA                   CABALGATAS 
##                            1                            1 
##          CARRERA DE CABALLOS         CARRERAS DE CABALLOS 
##                            3                            1 
##          CORRIDA DE CABALLOS             CORRIDA DE TOROS 
##                            1                            3 
##                     CULTURAL CULTURAL FOLCL?RICO Y TALLER 
##                            1                            1 
##            EVENTO DE PAYASOS                       GALLOS 
##                            1                            2 
##                     GANADERA                      JARIPEO 
##                            1                           19 
##                     JARIPEOS                  LUCHA LIBRE 
##                            1                            6 
##                     PALENQUE               PLAZA DE TOROS 
##                            2                            1 
##                        RODEO                      ROMERIA 
##                            2                            2 
##                        TOROS      VAQUER?AS DE MUNICIPIOS 
##                            4                            1
glimpse(base %>% select(p1_1:p1_7))
## Rows: 4,240
## Columns: 7
## $ p1_1 <dbl> 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ p1_2 <dbl> 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 5, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ p1_3 <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ p1_4 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ p1_5 <dbl> 1, 0, 0, 0, 15, 6, 2, 0, 1, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0…
## $ p1_6 <dbl> 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 3, 4, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,…
## $ p1_7 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
medias <- base %>%
  summarise(across(p1_1:p1_7, \(x) mean(x, na.rm = TRUE)))
print(medias)
## # A tibble: 1 × 7
##    p1_1  p1_2  p1_3  p1_4  p1_5  p1_6   p1_7
##   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
## 1 0.282 0.759 0.391 0.312  1.80 0.872 0.0366
tabla_medias <- medias %>%
  pivot_longer(
    cols = everything(), 
    names_to = "Variable", 
    values_to = "Media"
  )
print(tabla_medias)
## # A tibble: 7 × 2
##   Variable  Media
##   <chr>     <dbl>
## 1 p1_1     0.282 
## 2 p1_2     0.759 
## 3 p1_3     0.391 
## 4 p1_4     0.312 
## 5 p1_5     1.80  
## 6 p1_6     0.872 
## 7 p1_7     0.0366
medias_nombradas <- dplyr::summarise(base, dplyr::across(p1_1:p1_7, \(x) mean(x, na.rm = TRUE)))

colnames(medias_nombradas) <- c(
  "Teatro", 
  "Concierto o Música", 
  "Danza", 
  "Exposición o Museo", 
  "Cine o Películas", 
  "Ferias o Muestras", 
  "Otro Cultural"
)

tabla_medias_final <- tidyr::pivot_longer(
  medias_nombradas, 
  cols = dplyr::everything(), 
  names_to = "Actividad_Cultural", 
  values_to = "Media_Asistencia"
)
print(tabla_medias_final)
## # A tibble: 7 × 2
##   Actividad_Cultural Media_Asistencia
##   <chr>                         <dbl>
## 1 Teatro                       0.282 
## 2 Concierto o Música           0.759 
## 3 Danza                        0.391 
## 4 Exposición o Museo           0.312 
## 5 Cine o Películas             1.80  
## 6 Ferias o Muestras            0.872 
## 7 Otro Cultural                0.0366
medias_por_sexo <- dplyr::group_by(base, sexo)
medias_por_sexo <- dplyr::summarise(medias_por_sexo, dplyr::across(p1_1:p1_7, \(x) mean(x, na.rm = TRUE)))

colnames(medias_por_sexo) <- c(
  "Sexo",
  "Teatro", 
  "Concierto o Música", 
  "Danza", 
  "Exposición o Museo", 
  "Cine o Películas", 
  "Ferias o Muestras", 
  "Otro Cultural"
)

tabla_sexo <- tidyr::pivot_longer(
  medias_por_sexo, 
  cols = -Sexo, 
  names_to = "Actividad_Cultural", 
  values_to = "Media_Asistencia"
)

tabla_sexo <- dplyr::mutate(tabla_sexo, Sexo = dplyr::case_when(
  Sexo == 1 ~ "Hombre",
  Sexo == 2 ~ "Mujer",
  TRUE ~ as.character(Sexo)
))

print(tabla_sexo)
## # A tibble: 14 × 3
##    Sexo   Actividad_Cultural Media_Asistencia
##    <chr>  <chr>                         <dbl>
##  1 Hombre Teatro                       0.273 
##  2 Hombre Concierto o Música           0.847 
##  3 Hombre Danza                        0.347 
##  4 Hombre Exposición o Museo           0.348 
##  5 Hombre Cine o Películas             2.00  
##  6 Hombre Ferias o Muestras            0.890 
##  7 Hombre Otro Cultural                0.0395
##  8 Mujer  Teatro                       0.289 
##  9 Mujer  Concierto o Música           0.684 
## 10 Mujer  Danza                        0.429 
## 11 Mujer  Exposición o Museo           0.281 
## 12 Mujer  Cine o Películas             1.62  
## 13 Mujer  Ferias o Muestras            0.856 
## 14 Mujer  Otro Cultural                0.0340
library(tidyr)