library(readr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
datosreto <- read_csv("C:/Users/Asus ZenBook/Downloads/menores_pi_ensanut_2022_NL-1.Datos.csv")
## Rows: 841 Columns: 477
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (309): FOLIO_INT, FOLIO_I, FOLIO_ID, encuesta, fecha_ini_1, fecha_fin_1...
## dbl (82): t_hora, t_min, t_sumai, t_sumaf, tiempo1, resultado_1, tiempo2, ...
## lgl (76): nota002, nota003, M0118D, M0118E, m0118esp, M0203D, M0203E, M020...
## time (10): hora_ini_1, hora_fin_1, hora_ini_2, hora_fin_2, hora_ini_3, hora...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(datosreto)
reto4 <- select(datosreto, c("m0112b4", "m0112i", "m0112m", "m0112l","m0112k","m0112h","m0112b5","m0102","m0113","m0403a","m0403b", "m0316", "m0405d", "m0405g", "m0938", "m0405h","m0916","m0406",))
summary(reto4)
## m0112b4 m0112i m0112m m0112l
## Length:841 Length:841 Length:841 Length:841
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## m0112k m0112h m0112b5 m0102
## Length:841 Length:841 Length:841 Length:841
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## m0113 m0403a m0403b m0316
## Length:841 Min. :0.0000 Min. :0.0000 Length:841
## Class :character 1st Qu.:0.0000 1st Qu.:0.0000 Class :character
## Mode :character Median :0.0000 Median :0.0000 Mode :character
## Mean :0.3674 Mean :0.6278
## 3rd Qu.:0.0000 3rd Qu.:0.0000
## Max. :8.0000 Max. :8.0000
## m0405d m0405g m0938 m0405h
## Length:841 Length:841 Mode:logical Length:841
## Class :character Class :character NA's:841 Class :character
## Mode :character Mode :character Mode :character
##
##
##
## m0916 m0406
## Length:841 Length:841
## Class :character Class :character
## Mode :character Mode :character
##
##
##
#¿Le explicaron sobre cómo iniciar la alimentación complementaria?
reto4$m0112b4[is.na(reto4$m0112b4)] <- "No respondió"
count(reto4, m0112b4, sort = TRUE)
## # A tibble: 3 × 2
## m0112b4 n
## <chr> <int>
## 1 Si 578
## 2 No 261
## 3 No sabe 2
#En alguna consulta del niño sano, en otra consulta, en un taller o plática comunitaria, ¿algún personal de salud le dio información acerca de: La importancia del juego y de la actividad física en la infancia?
reto4$m0112i[is.na(reto4$m0112i)] <- "No respondió"
count(reto4, m0112i, sort = TRUE)
## # A tibble: 4 × 2
## m0112i n
## <chr> <int>
## 1 Si 534
## 2 No 297
## 3 No sabe 8
## 4 No responde 2
#En alguna consulta del niño sano, en otra consulta, en un taller o plática comunitaria, ¿algún personal de salud le dio información acerca de: Desnutrición, retraso del crecimiento y anemia?
reto4$m0112m[is.na(reto4$m0112m)] <- "No respondió"
count(reto4, m0112m, sort = TRUE)
## # A tibble: 4 × 2
## m0112m n
## <chr> <int>
## 1 Si 484
## 2 No 352
## 3 No sabe 4
## 4 No responde 1
#En alguna consulta del niño sano, en otra consulta, en un taller o plática comunitaria, ¿algún personal de salud le dio información acerca de: Sobrepeso o ganancia acelerada de peso
reto4$m0112l[is.na(reto4$m0112l)] <- "No respondió"
count(reto4, m0112l, sort = TRUE)
## # A tibble: 4 × 2
## m0112l n
## <chr> <int>
## 1 Si 469
## 2 No 362
## 3 No sabe 6
## 4 No responde 4
#En alguna consulta del niño sano, en otra consulta, en un taller o plática comunitaria, ¿algún personal de salud le dio información acerca de: La importancia de que (NOMBRE) asista al preescolar o a algún programa de educación inicial?
reto4$m0112k[is.na(reto4$m0112k)] <- "No respondió"
count(reto4, m0112k, sort = TRUE)
## # A tibble: 4 × 2
## m0112k n
## <chr> <int>
## 1 Si 430
## 2 No 409
## 3 No responde 1
## 4 No sabe 1
#En alguna consulta del niño sano, en otra consulta, en un taller o plática comunitaria, ¿algún personal de salud le dio información acerca de: La nutrición del niño/a, dieta balanceada?
reto4$m0112h[is.na(reto4$m0112h)] <- "No respondió"
count(reto4, m0112h, sort = TRUE)
## # A tibble: 4 × 2
## m0112h n
## <chr> <int>
## 1 Si 591
## 2 No 247
## 3 No sabe 2
## 4 No responde 1
#¿le explicaron sobre cómo dar suplementos de vitaminas, hierro y otros minerales a su niño/a?
reto4$m0112b5[is.na(reto4$m0112b5)] <- "No respondió"
count(reto4, m0112b5, sort = TRUE)
## # A tibble: 4 × 2
## m0112b5 n
## <chr> <int>
## 1 No 420
## 2 Si 410
## 3 No sabe 7
## 4 No responde 4
#¿Cuál es el grado de estudios más alto de la madre de (NOMBRE)?
reto4$m0102[is.na(reto4$m0102)] <- "No respondió"
count(reto4, m0102, sort = TRUE)
## # A tibble: 11 × 2
## m0102 n
## <chr> <int>
## 1 Secundaria 403
## 2 Preparatoria 204
## 3 Licenciatura 86
## 4 Primaria 84
## 5 Estudios te 27
## 6 Ninguno 21
## 7 No respondió 6
## 8 Preescolar 5
## 9 Maestria 3
## 10 No sabe 1
## 11 Normal de li 1
#El personal de salud, ¿le explicó sobre la forma de estimular el desarrollo y crecimiento de (NOMBRE) en el hogar?
reto4$m0113[is.na(reto4$m0113)] <- "No respondió"
count(reto4, m0113, sort = TRUE)
## # A tibble: 4 × 2
## m0113 n
## <chr> <int>
## 1 Si 448
## 2 No 385
## 3 No sabe 5
## 4 No responde 3
#¿(NOMBRE) pregunta por personas familiares, que no sean sus padres, cuando no se encuentran presentes?, por ejemplo, “¿Dónde está la abuela?”
reto4$m0316[is.na(reto4$m0316)] <- "No respondió"
count(reto4, m0316, sort = TRUE)
## # A tibble: 3 × 2
## m0316 n
## <chr> <int>
## 1 Si 447
## 2 No respondió 285
## 3 No 109
#Los adultos utilizan diversas maneras de enseñar a comportarse a los niños/as o de responder a un problema de comportamiento. Le voy a leer varias maneras que se utilizan y me gustaría que me dijera si usted o alguien más del hogar ha utilizado alguna de estas maneras con (NOMBRE) en el último mes.
#Le gritaron.
reto4$m0405d[is.na(reto4$m0405d)] <- "No respondió"
count(reto4, m0405d, sort = TRUE)
## # A tibble: 3 × 2
## m0405d n
## <chr> <int>
## 1 No 485
## 2 Si 202
## 3 No respondió 154
#Le pegaron en el trasero o en otra parte del cuerpo con algún objeto como un cinturón, un cepillo de pelo, una chancla, un palo u otro objeto duro.
reto4$m0405g[is.na(reto4$m0405g)] <- "No respondió"
count(reto4, m0405g, sort = TRUE)
## # A tibble: 4 × 2
## m0405g n
## <chr> <int>
## 1 No 662
## 2 No respondió 154
## 3 Si 23
## 4 No responde 2
#Le llamaron tonto/a, flojo/a o alguna otra cosa parecida.
reto4$m0405h[is.na(reto4$m0405h)] <- "No respondió"
count(reto4, m0405h, sort = TRUE)
## # A tibble: 4 × 2
## m0405h n
## <chr> <int>
## 1 No 662
## 2 No respondió 154
## 3 Si 24
## 4 No responde 1
# Me gustaría saber con qué frecuencia se muestra (nombre) muy triste o deprimido/a.
reto4$m0938[is.na(reto4$m0938)] <- "No respondió"
count(reto4, m0938, sort = TRUE)
## # A tibble: 1 × 2
## m0938 n
## <chr> <int>
## 1 No respondió 841
#En comparación con los niños/as de la misma edad, ¿con qué frecuencia (nombre) da patadas, muerde o golpea a otros niños/as o adultos? frecuencia, con más o mucha más frecuencia?
reto4$m0916[is.na(reto4$m0916)] <- "No respondió"
count(reto4, m0916, sort = TRUE)
## # A tibble: 5 × 2
## m0916 n
## <chr> <int>
## 1 NUNCA 348
## 2 No respondió 285
## 3 CON LA MISMA 169
## 4 MaS FRECUEN 29
## 5 MUCHA MaS F 10
#¿Cree usted que para criar o educar correctamente a un niño o una niña, él o ella debe ser castigado/a físicamente?
reto4$m0406[is.na(reto4$m0406)] <- "No respondió"
count(reto4, m0406, sort = TRUE)
## # A tibble: 5 × 2
## m0406 n
## <chr> <int>
## 1 No 627
## 2 No respondió 154
## 3 Si 54
## 4 No responde 3
## 5 No sabe/No o 3
reto4_filtrado <- reto4 %>%
filter(!(m0102 %in% c("No respondió", "Estudios té", "Normal de li")))
custom_order <- c("Preescolar", "Primaria", "Secundaria", "Preparatoria", "Licenciatura", "Maestría")
reto4_filtrado$m0102 <- factor(reto4_filtrado$m0102, levels = custom_order)
ggplot(reto4_filtrado, aes(x = m0102, fill = m0102)) +
geom_bar() +
geom_text(
aes(label = ..count..),
stat = "count",
vjust = -0.5,
size = 3
) +
theme_light() +
scale_fill_brewer(palette = "Set3") +
labs(
x = "Nivel Educativo de la Madre",
caption = "Data Source: ENSANUT"
) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
custom_order <- c("Preescolar", "Primaria", "Secundaria", "Preparatoria", "Licenciatura", "Maestría")
reto4_filtrado$m0102 <- factor(reto4_filtrado$m0102, levels = custom_order)
ggplot(reto4_filtrado, aes(x = m0405d, fill = m0102)) +
geom_bar(position = "dodge", stat = "count") +
geom_text(
aes(label = ..count..),
stat = "count",
position = position_dodge(width = 0.9),
vjust = -0.5,
size = 3
) +
labs(x = "Basado en el Nivel Educativo de la Madre", y = "Count", title = "Le Han Gritado al Niño(a)?") +
facet_wrap(~ m0405d, scales = "free_x", nrow = 1) +
theme_light() +
scale_fill_brewer(palette = "Set3")
### Correlación entre estudios de la madre y si le pega a sus hijos
custom_order <- c("Preescolar", "Primaria", "Secundaria", "Preparatoria", "Licenciatura", "Maestría")
reto4_filtrado$m0102 <- factor(reto4_filtrado$m0102, levels = custom_order)
ggplot(reto4_filtrado, aes(x = m0405g, fill = m0102)) +
geom_bar(position = "dodge", stat = "count") +
geom_text(
aes(label = ..count..),
stat = "count",
position = position_dodge(width = 0.9),
vjust = -0.5,
size = 3
) +
labs(x = "Basado en el Nivel Educativo de la Madre", y = "Count", title = "Le Han Pegado al Niño?") +
facet_wrap(~ m0405g, scales = "free_x", nrow = 1) +
theme_light() +
scale_fill_brewer(palette = "Set3")
custom_order <- c("Preescolar", "Primaria", "Secundaria", "Preparatoria", "Licenciatura", "Maestría")
reto4_filtrado$m0102 <- factor(reto4_filtrado$m0102, levels = custom_order)
ggplot(reto4_filtrado, aes(x = m0405h, fill = m0102)) +
geom_bar(position = "dodge", stat = "count") +
geom_text(
aes(label = ..count..),
stat = "count",
position = position_dodge(width = 0.9),
vjust = -0.5,
size = 3
) +
labs(x = "Basado en el Nivel Educativo de la Madre", y = "Count", title = "Le Han Llamado Tonto/Flojo?") +
facet_wrap(~ m0405h, scales = "free_x", nrow = 1) +
theme_minimal() +
scale_fill_brewer(palette = "Set3") +
theme_light() +
scale_fill_brewer(palette = "Set3")
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
unique_answers <- unique(reto4$m0406)
print(unique_answers)
## [1] "No" "No respondió" "Si" "No sabe/No o" "No responde"
unique_answers <- unique(reto4$m0916)
print(unique_answers)
## [1] "No respondió" "NUNCA" "MaS FRECUEN" "CON LA MISMA" "MUCHA MaS F"
m0916_grouped <- reto4 %>%
mutate(m0916 = case_when(
m0916 %in% c("No respondió", "No sabe/No o", "No responde") ~ "No Responde/Sabe",
TRUE ~ m0916
))
summary_table <- table(m0916_grouped$m0406)
df <- as.data.frame(summary_table)
colnames(df) <- c("Response", "Count")
df$Percentage <- (df$Count / sum(df$Count)) * 100
donut_chart <- ggplot(df, aes(x = 1, y = Count, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 3) +
coord_polar(theta = "y") +
theme_void() +
labs(title = "Un niño(a) debe ser castigado/a físicamente?") +
scale_fill_manual(values = c("Si" = "#00CC33", "No" = "#CC3300", "No Responde/Sabe" = "gray"))
donut_chart
summary_table2 <- table(reto4$m0916)
df <- as.data.frame(summary_table2)
colnames(df) <- c("Response", "Count")
df$Percentage <- (df$Count / sum(df$Count)) * 100
donut_chart <- ggplot(df, aes(x = 1, y = Count, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 3) +
coord_polar(theta = "y") +
theme_void() +
labs(title = "Con que frecuencia lastima fisicamente a otros?",
subtitle = "En comparación a otros niños(as) de su edad") +
scale_fill_brewer(palette = "Set3")
donut_chart
reto4$m0112i <- factor(reto4$m0112i, levels = c("Si", "No", "No respondió"))
reto4$m0112m <- factor(reto4$m0112m, levels = c("Si", "No", "No respondió"))
reto4$m0112l <- factor(reto4$m0112l, levels = c("Si", "No", "No respondió"))
reto4$m0112k <- factor(reto4$m0112k, levels = c("Si", "No", "No respondió"))
reto4$m0112h <- factor(reto4$m0112h, levels = c("Si", "No", "No respondió"))
reto4_grafica1 <- reto4 %>%
gather(variable, respuesta, m0112i, m0112m, m0112l, m0112k, m0112h)
ggplot(reto4_grafica1, aes(x = variable, fill = respuesta)) +
geom_bar(position = "fill") +
labs(title = "En alguna consulta o taller, se le dio información acerca de:",
x = "Variables",
y = "Porcentaje") +
scale_fill_manual(values = c("Si" = "#00CC33", "No" = "#CC3300", "No respondió" = "gray")) +
scale_x_discrete(labels = c(
m0112i = "Actividad fisica",
m0112m = "Desnutrición",
m0112l = "Sobrepeso",
m0112k = "Educación",
m0112h = "Nutrición"
)) +
theme_minimal()
reto4$m0112b4 <- factor(reto4$m0112b4, levels = c("Si", "No", "No respondió"))
reto4$m0112b5 <- factor(reto4$m0112b5, levels = c("Si", "No", "No respondió"))
reto4$m0113 <- factor(reto4$m0113, levels = c("Si", "No", "No respondió"))
reto4_grafica3 <- reto4 %>%
gather(variable, respuesta, m0112b4, m0112b5, m0113)
ggplot(reto4_grafica3, aes(x = variable, fill = respuesta)) +
geom_bar(position = "fill") +
labs(title = "Le explicaron sobre:",
x = "Variables",
y = "Porcentaje") +
scale_fill_manual(values = c("Si" = "#00CC33", "No" = "#CC3300", "No respondió" = "gray")) +
scale_x_discrete(labels = c(
m0112b4 = "Alimentación complementaria",
m0112b5 = "Suplementos",
m0113 = "Forma de estimular el desarrollo y crecimiento"
)) +
theme_minimal()
reto4$m0403a[reto4$m0403a == NA] <- "Cero"
reto4$m0403b[reto4$m0403b == NA] <- "Cero"
ggplot(reto4, aes(x = m0403a, fill = m0403a)) +
geom_bar(position = "dodge", stat = "count") +
labs(title = "¿Cuántos días en la última semana dejó a (NOMBRE): solo/a durante más de una hora?",
x = "Respuestas",
y = "Frecuencia") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set3") +
geom_text(aes(label = ..count..), stat = "count", vjust = -0.5, size = 3) +
theme(plot.title = element_text(size = 10))
# Crear el gráfico de barras para m0403b
ggplot(reto4, aes(x = m0403b, fill = m0403b)) +
geom_bar(position = "dodge", stat = "count") +
labs(title = "¿Cuántos días en la última semana dejó a (NOMBRE): al cuidado de otro niño/a menor de 10 años, durante más de una hora?",
x = "Respuestas",
y = "Frecuencia") +
theme_void() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set3") +
geom_text(aes(label = ..count..), stat = "count", vjust = -0.5, size = 3)+
theme(plot.title = element_text(size = 8))