rm(list = ls(all = TRUE))
graphics.off()
#shell("cls")
# 0. Instalar/llamar librerías
# install.packages(c("readxl","dplyr","tidyr","ggplot2","wordcloud","RColorBrewer"))
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.2
## 
## 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(tidyr)
## Warning: package 'tidyr' was built under R version 4.2.2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.2
library(wordcloud)
## Warning: package 'wordcloud' was built under R version 4.2.3
## Carregando pacotes exigidos: RColorBrewer
library(RColorBrewer)
library(tm)
## Warning: package 'tm' was built under R version 4.2.3
## Carregando pacotes exigidos: NLP
## 
## Attaching package: 'NLP'
## The following object is masked from 'package:ggplot2':
## 
##     annotate
# 1. Configuración de paleta técnica
pal <- c("#2C3E50","#95A5A6","#BDC3C7","#D7DBDD","#EBEFF2")

# 2. Leer y renombrar columnas
df <- read_excel("C:/Users/PC/Desktop/sinai/Formulario sin título (Respuestas).xlsx")


df <- df %>% rename(
  Edad              = `1.1. Edad`,
  Genero            = `1.2.  Género`,
  Residencia        = `1.3. Tiempo de residencia en el barrio.`,
  Escolaridad       = `1.4.  Último nivel de escolaridad`,
  Num_personas      = `1.5. ¿Cantidad de personas que viven en su unidad habitacional o casa?`,
  Condiciones       = `1.6.  ¿En su casa vive alguien con alguna de estas condiciones?`,
  Exposicion        = `2.1. ¿Considera que su comunidad está expuesta al riesgo de deslizamiento?`,
  Preocupacion      = `2.2. ¿Qué tan preocupado se siente usted de que pueda haber un riesgo de deslizamiento?`,
  Evento_conocido   = `2.3. ¿Ha presenciado o conocido algún evento de deslizamiento en su comunidad?`,
  Descripcion_evento= `2.3.1 En caso de que la pregunta anterior sea afirmativa, por favor, describa el evento (¿Hace cuánto tiempo sucedió y cómo le afectó a usted este evento?)`,
  Afectacion        = `2.4. ¿Ha tenido alguna afectación en su casa a causa de un deslizamiento?`,
  Conoce_medidas    = `2.5. ¿Conoce usted alguna medida preventiva para evitar los deslizamientos?`,
  Medidas_conocidas = `2.5.1 En caso de que la pregunta anterior sea afirmativo, por favor, seleccione cuáles conoce:`,
  Preparado         = `2.6. ¿Considera  que se encuentra preparad@ ante el riesgo del deslizamiento?`,
  Opciones_preparac = `2.6.1. En caso de que la pregunta anterior sea afirmativo, por favor, seleccione todas las opciones que considera que apliquen:`,
  Ha_tomado_medida  = `2. 7. ¿Ha tomado alguna medida para prepararse ante el riesgo de deslizamiento?`,
  Medidas_tomadas   = `2.7.1 En caso de que la pregunta anterior sea afirmativo, ¿Qué medida(s) ha tomado?`,
  Capacita          = `2.8. ¿Ha recibido capacitación o apoyo de alguna institución o persona(s) relacionado con el riesgo de deslizamiento?`,
  Fuente_cap        = `2.8.1  En caso de que la pregunta anterior (2.8) sea afirmativo ¿De parte de qué institución o persona(s) ha recibido esta capacitación o apoyo?`,
  Familia_cap       = `2.8.2  En caso de que la pregunta anterior sea afirmativo ¿Quién o quiénes de su familia lo han recibido?`,
  Necesita_cap      = `2.8.3 En caso de que la respuesta a la pregunta 2.8 sea negativo, ¿considera necesario recibir una capacitación relacionada con la preparación ante el riesgo de deslizamiento?`,
  Conoce_grupo      = `2.9. ¿Conoce si existe algún grupo comunitario organizado en Sinaí en caso de emergencia?`,
  Participa_grupo   = `2.9.1 En caso de que la pregunta anterior sea afirmativo, ¿participa usted en esta organización comunitaria?`
)

setwd("C:/Users/PC/Desktop/sinai/resultados")

##### Pregunta 1: Distribución de Edad

df %>% 
  count(Edad) %>% 
  ggplot(aes(x="", y=n, fill=Edad)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Distribución de Edad", caption="Pregunta 1") +
  theme_void()

##### Pregunta 2: Distribución por Género

df %>% 
  count(Genero) %>% 
  ggplot(aes(x="", y=n, fill=Genero)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Distribución por Género", caption="Pregunta 2") +
  theme_void()

##### Pregunta 3: Tiempo de Residencia

df %>% 
  count(Residencia) %>% 
  ggplot(aes(x=reorder(Residencia,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Tiempo de Residencia en el Barrio", 
       x="Residencia (años)", y="Frecuencia",
       caption="Pregunta 3") +
  theme_minimal()

##### Pregunta 4: Nivel de Escolaridad

df %>% 
  count(Escolaridad) %>% 
  ggplot(aes(x=reorder(Escolaridad,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Nivel de Escolaridad", 
       x="Último nivel alcanzado", y="Frecuencia",
       caption="Pregunta 4") +
  theme_minimal()

##### Pregunta 5: Número de Personas por Vivienda

ggplot(df, aes(x=Num_personas)) +
  geom_histogram(binwidth=1, fill=pal[1], color="white") +
  labs(title="Número de Personas por Vivienda",
       x="Personas", y="Frecuencia",
       caption="Pregunta 5") +
  theme_minimal()

##### Pregunta 6: Condiciones Habitacionales

df %>% 
  separate_rows(Condiciones, sep=",") %>% 
  filter(Condiciones!="") %>% 
  count(Condiciones) %>% 
  ggplot(aes(x=reorder(Condiciones,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Condiciones Habitacionales",
       x="Condición", y="Frecuencia",
       caption="Pregunta 6") +
  theme_minimal()

##### Pregunta 7: Percepción de Exposición al Riesgo

df %>% 
  count(Exposicion) %>% 
  ggplot(aes(x="", y=n, fill=Exposicion)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Percepción de Exposición al Riesgo",
       caption="Pregunta 7") +
  theme_void()

##### Pregunta 8: Nivel de Preocupación

df %>% 
  count(Preocupacion) %>% 
  ggplot(aes(x=reorder(Preocupacion,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Nivel de Preocupación ante Deslizamiento",
       x="Nivel de preocupación", y="Frecuencia",
       caption="Pregunta 8") +
  theme_minimal()

##### Pregunta 9: Conocimiento de Evento de Deslizamiento

df %>% 
  count(Evento_conocido) %>% 
  ggplot(aes(x="", y=n, fill=Evento_conocido)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Conocimiento de Evento de Deslizamiento",
       caption="Pregunta 9") +
  theme_void()

##### Pregunta 10: Descripción de Eventos (nube de palabras)

text <- paste(df$Descripcion_evento, collapse=" ")
words <- unlist(strsplit(text, "\\s+"))
wordcloud(words, scale=c(3,0.5), min.freq=1,
          colors=brewer.pal(8,"Dark2"), random.order=FALSE)
## Warning in tm_map.SimpleCorpus(corpus, tm::removePunctuation): transformation
## drops documents
## Warning in tm_map.SimpleCorpus(corpus, function(x) tm::removeWords(x,
## tm::stopwords())): transformation drops documents
title("Nube de Palabras: Descripción de Eventos")

##### Pregunta 11: Afectación en la Vivienda

df %>% 
  count(Afectacion) %>% 
  ggplot(aes(x="", y=n, fill=Afectacion)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Afectación en la Vivienda",
       caption="Pregunta 11") +
  theme_void()

##### Pregunta 12: Conocimiento de Medidas Preventivas

df %>% 
  count(Conoce_medidas) %>% 
  ggplot(aes(x="", y=n, fill=Conoce_medidas)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Conocimiento de Medidas Preventivas",
       caption="Pregunta 12") +
  theme_void()

##### Pregunta 13: Medidas Preventivas Conocidas

df %>% 
  separate_rows(Medidas_conocidas, sep=",") %>%
  filter(Medidas_conocidas!="") %>% 
  count(Medidas_conocidas) %>% 
  ggplot(aes(x=reorder(Medidas_conocidas,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Medidas Preventivas Conocidas",
       x="Medida", y="Frecuencia",
       caption="Pregunta 13") +
  theme_minimal()

##### Pregunta 14: Percepción de Preparación

df %>% 
  count(Preparado) %>% 
  ggplot(aes(x="", y=n, fill=Preparado)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Percepción de Preparación",
       caption="Pregunta 14") +
  theme_void()

##### Pregunta 15: Opciones de Preparación Aplicables
 ### `2.6.1. En caso de que la pregunta anterior sea afirmativo, por favor, seleccione todas las opciones que considera que apliquen:`,

#df %>% 
 # separate_rows(Opciones_prepara, sep=",") %>%
 # filter(Opciones_prepara!="") %>% 
  # count(Opciones_prepara) %>% 
  # ggplot(aes(x=reorder(Opciones_prepara,n), y=n)) +
  # geom_col(fill=pal[1]) +
  # coord_flip() +
  # labs(title="Opciones de Preparación Aplicables",
  #      x="Opción", y="Frecuencia",
  #      caption="Pregunta 15") +
  # theme_minimal()

##### Pregunta 16: Acción Tomada para Preparación

df %>% 
  count(Ha_tomado_medida) %>% 
  ggplot(aes(x="", y=n, fill=Ha_tomado_medida)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Acción Tomada para Preparación",
       caption="Pregunta 16") +
  theme_void()

##### Pregunta 17: Medidas Tomadas (nube de palabras)

text2 <- paste(df$Medidas_tomadas, collapse=" ")
words2 <- unlist(strsplit(text2, "\\s+"))
wordcloud(words2, scale=c(3,0.5), min.freq=1,
          colors=brewer.pal(8,"Dark2"), random.order=FALSE)
## Warning in tm_map.SimpleCorpus(corpus, tm::removePunctuation): transformation
## drops documents

## Warning in tm_map.SimpleCorpus(corpus, tm::removePunctuation): transformation
## drops documents
title("Nube de Palabras: Medidas Tomadas")

##### Pregunta 18: Capacitación Recibida

df %>% 
  count(Capacita) %>% 
  ggplot(aes(x="", y=n, fill=Capacita)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Capacitación Recibida",
       caption="Pregunta 18") +
  theme_void()

##### Pregunta 19: Fuente de Capacitación

df %>% 
  count(Fuente_cap) %>% 
  filter(!is.na(Fuente_cap)) %>%
  ggplot(aes(x=reorder(Fuente_cap,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Fuente de Capacitación",
       x="Institución / Persona", y="Frecuencia",
       caption="Pregunta 19") +
  theme_minimal()

##### Pregunta 20: Miembros de la Familia que Recibieron Capacitación

df %>% 
  separate_rows(Familia_cap, sep=",") %>%
  filter(Familia_cap!="") %>%
  count(Familia_cap) %>%
  ggplot(aes(x=reorder(Familia_cap,n), y=n)) +
  geom_col(fill=pal[1]) +
  coord_flip() +
  labs(title="Familia que Recibió Capacitación",
       x="Miembro familiar", y="Frecuencia",
       caption="Pregunta 20") +
  theme_minimal()

##### Pregunta 21: Necesidad de Capacitación

df %>% 
  count(Necesita_cap) %>% 
  ggplot(aes(x="", y=n, fill=Necesita_cap)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Necesidad de Capacitación",
       caption="Pregunta 21") +
  theme_void()

##### Pregunta 22: Conocimiento de Grupo Comunitario

df %>% 
  count(Conoce_grupo) %>% 
  ggplot(aes(x="", y=n, fill=Conoce_grupo)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Conocimiento de Grupo Comunitario",
       caption="Pregunta 22") +
  theme_void()

##### Pregunta 23: Participación en Grupo Comunitario

df %>% 
  count(Participa_grupo) %>% 
  ggplot(aes(x="", y=n, fill=Participa_grupo)) +
  geom_col(width=1) +
  coord_polar("y") +
  scale_fill_manual(values=pal) +
  labs(title="Participación en Grupo Comunitario",
       caption="Pregunta 23") +
  theme_void()

rm(list = ls(all = TRUE))
graphics.off()
#shell("cls")
rm(list = ls(all = TRUE))
graphics.off()
#shell("cls")
rm(list = ls(all = TRUE))
graphics.off()
#shell("cls")
rm(list = ls(all = TRUE))
graphics.off()
#shell("cls")