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.
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)