# Cargar datos Variable cualitativa ordinal
Mes
library(dplyr) library(ggplot2) library(gt) library(readxl) # ============================================================ # CARGAR EL ARCHIVO EXCEL # (usa el nombre exacto de tu archivo) datos_nuevoartes <- read_excel(“datos_nuevoartes.xlsx”) datos_nuevoartes <- datos_nuevoartes %>% mutate( landslide_trigger_consol = case_when(
landslide_trigger %in% c(
"downpour", "rain", "continuous_rain", "monsoon"
) ~ "Precipitación",
landslide_trigger %in% c(
"snowfall_snowmelt", "freeze_thaw"
) ~ "Fenómenos de nieve/hielo",
landslide_trigger %in% c(
"earthquake", "volcano"
) ~ "Actividad geológica",
landslide_trigger %in% c(
"mining", "construction", "vibration", "leaking_pipe"
) ~ "Desencadenante humano",
landslide_trigger %in% c(
"flooding", "dam_embankment_collapse"
) ~ "Estructuras",
landslide_trigger %in% c(
"unknown", "no_apparent_trigger", "other"
) ~ "Otros desencadenantes",
TRUE ~ NA_character_
)
) tabla_trigger <- datos_nuevoartes %>% filter(!is.na(landslide_trigger_consol)) %>% group_by(landslide_trigger_consol) %>% summarise(ni = n(), .groups = “drop”) %>% arrange(desc(ni)) %>% mutate( i = row_number(), hi = round((ni / sum(ni)) * 100, 2), i = as.character(i) ) %>% rename(Desencadenante = landslide_trigger_consol) %>% select(i, Desencadenante, ni, hi) fila_total_trigger <- tibble( i = “SUMATORIA”, Desencadenante = “TOTAL”, ni = sum(tabla_trigger\(ni), hi = round(sum(tabla_trigger\)hi), 0) )
tabla_trigger_final <- bind_rows(tabla_trigger,
fila_total_trigger) tabla_trigger_gt <- tabla_trigger_final %>%
gt() %>% tab_header( title = md(“**Tabla N° __“), subtitle =
md(”Frecuencia y porcentaje de desencadenantes de
deslizamientos (categorías consolidadas)**“) ) %>% tab_source_note(
source_note = md(”Criterio de consolidación: similitud genética y
dinámica del proceso desencadenante.
Autor: Alessandro” ) )
tabla_trigger_gt #============================ # ORDEN LÓGICO PARA GRÁFICAS #============================ orden_trigger <- c( “Precipitación”, “Actividad geológica”, “Estructuras”, “Desencadenante humano”, “Fenómenos de nieve/hielo”, “Otros desencadenantes” )
datos_nuevoartes <- datos_nuevoartes %>% mutate( landslide_trigger_consol = factor( landslide_trigger_consol, levels = orden_trigger ) ) #============================ #GRÁFICA DE FRECUENCIA (ni) #============================ ggplot( datos_nuevoartes %>% filter(!is.na(landslide_trigger_consol)), aes(x = landslide_trigger_consol) ) + geom_bar(fill = “skyblue”, color = “black”) + labs( title = “Distribución de los desencadenantes de movimientos en masa”, x = “Tipo de desencadenante”, y = “Frecuencia (ni)” ) + theme_minimal() + theme( axis.text.x = element_text(angle = 30, hjust = 1) ) tabla_trigger_hi <- datos_nuevoartes %>% filter(!is.na(landslide_trigger_consol)) %>% group_by(landslide_trigger_consol) %>% summarise(ni = n(), .groups = “drop”) %>% mutate( hi = round((ni / sum(ni)) * 100, 2) )
ggplot(tabla_trigger_hi, aes(x = landslide_trigger_consol, y = hi)) + geom_col(fill = “steelblue”, color = “black”) + geom_text( aes(label = paste0(hi, “%”)), vjust = -0.4, size = 4 ) + labs( title = “Porcentaje de ocurrencia por desencadenante”, x = “Tipo de desencadenante”, y = “Porcentaje (%)” ) + theme_minimal() + theme( axis.text.x = element_text(angle = 30, hjust = 1) )