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