1. CARGA DE DATOS Y LIBRERÍAS
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(readxl)
library(gt)
datos <- read_excel("datos_deslizamientos.xlsx")
3. CONTEO
3.1 Consolidación de categorías
datos <- datos %>%
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_
)
)
3.2 Conteo de datos
variable <- datos$landslide_trigger_consol
variable <- variable[!is.na(variable)]
N <- length(variable)
3.3 Cálculo de frecuencias
TDFTrigger <- datos %>%
filter(!is.na(landslide_trigger_consol)) %>%
count(landslide_trigger_consol, name = "ni") %>%
mutate(
hi = ni / sum(ni),
hi_porcentaje = hi * 100
)
TDFTrigger_total <- TDFTrigger %>%
add_row(
landslide_trigger_consol = "TOTAL",
ni = sum(TDFTrigger$ni),
hi = 1,
hi_porcentaje = 100
)
4. TABLA DE FRECUENCIAS
4.1 Tabla de frecuencias
tabla_frecuencias <- TDFTrigger_total %>%
mutate(
hi = round(hi, 4),
hi_porcentaje = round(hi_porcentaje, 2)
)
tabla_frecuencias
## # A tibble: 7 × 4
## landslide_trigger_consol ni hi hi_porcentaje
## <chr> <int> <dbl> <dbl>
## 1 Actividad geológica 90 0.0086 0.86
## 2 Desencadenante humano 186 0.0178 1.78
## 3 Estructuras 87 0.0083 0.83
## 4 Fenómenos de nieve/hielo 176 0.0168 1.68
## 5 Otros desencadenantes 1761 0.168 16.8
## 6 Precipitación 8149 0.780 78.0
## 7 TOTAL 10449 1 100
4.2 Presentación de la tabla
tabla_frecuencias %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 1**"),
subtitle = md("Distribución de frecuencias de los desencadenantes de deslizamientos a nivel mundial")
) %>%
cols_label(
landslide_trigger_consol = "Tipo de desencadenante",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa",
hi_porcentaje = "Frecuencia relativa (%)"
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = landslide_trigger_consol == "TOTAL")
)
| Tabla Nro. 1 |
| Distribución de frecuencias de los desencadenantes de deslizamientos a nivel mundial |
| Tipo de desencadenante |
Frecuencia absoluta (ni) |
Frecuencia relativa |
Frecuencia relativa (%) |
| Actividad geológica |
90 |
0.0086 |
0.86 |
| Desencadenante humano |
186 |
0.0178 |
1.78 |
| Estructuras |
87 |
0.0083 |
0.83 |
| Fenómenos de nieve/hielo |
176 |
0.0168 |
1.68 |
| Otros desencadenantes |
1761 |
0.1685 |
16.85 |
| Precipitación |
8149 |
0.7799 |
77.99 |
| TOTAL |
10449 |
1.0000 |
100.00 |
| Elaborado por: Grupo 1 – Carrera de Geología |
tabla_graficos <- TDFTrigger
5. GRÁFICAS
5.1 Distribución local del desencadenante de deslizamientos
a nivel mundial
par(mar = c(10, 5, 4, 2))
max_ni <- max(tabla_graficos$ni)
pos_x <- barplot(
tabla_graficos$ni,
names.arg = tabla_graficos$landslide_trigger_consol,
col = "steelblue",
border = "black",
space = 0.2,
las = 2,
ylim = c(0, max_ni),
yaxt = "n",
main = "Gráfica 1: Distribución local del desencadenante de\ndeslizamientos a nivel mundial",
xlab = "",
ylab = "Cantidad",
cex.names = 0.75
)
ticks_y <- round(
seq(0, max_ni, length.out = 5),
0
)
axis(
side = 2,
at = ticks_y,
labels = ticks_y,
las = 1
)
text(
x = pos_x,
y = tabla_graficos$ni,
labels = tabla_graficos$ni,
pos = 3,
font = 2,
cex = 0.8
)

5.2 Distribución global del desencadenante de deslizamientos
a nivel mundial
par(mar = c(10, 5, 4, 2))
N_total <- sum(tabla_graficos$ni)
pos_x <- barplot(
tabla_graficos$ni,
names.arg = tabla_graficos$landslide_trigger_consol,
col = "steelblue",
border = "black",
space = 0.2,
las = 2,
ylim = c(0, N_total),
yaxt = "n",
main = "Gráfica 2: Distribución global del desencadenante de\ndeslizamientos a nivel mundial",
xlab = "",
ylab = "Cantidad",
cex.names = 0.75
)
ticks_y <- round(
seq(0, N_total, length.out = 6),
0
)
axis(
side = 2,
at = ticks_y,
labels = ticks_y,
las = 1
)
abline(
h = N_total,
col = "red",
lty = 2,
lwd = 2
)
text(
x = pos_x,
y = tabla_graficos$ni,
labels = tabla_graficos$ni,
pos = 3,
font = 2,
cex = 0.8
)

5.3 Distribución local en porcentaje del desencadenante de
deslizamientos a nivel mundial
par(mar = c(10, 5, 4, 2))
max_hi <- max(tabla_graficos$hi_porcentaje)
pos_x <- barplot(
tabla_graficos$hi_porcentaje,
names.arg = tabla_graficos$landslide_trigger_consol,
col = "skyblue",
border = "black",
space = 0.2,
las = 2,
ylim = c(0, 70),
yaxt = "n",
main = "Gráfica 3: Distribución local en porcentaje del desencadenante\nde deslizamientos a nivel mundial",
xlab = "",
ylab = "Porcentaje (%)",
cex.names = 0.75
)
ticks_y <- seq(0, 70, by = 10)
axis(
side = 2,
at = ticks_y,
labels = ticks_y,
las = 1
)
text(
x = pos_x,
y = tabla_graficos$hi_porcentaje,
labels = round(tabla_graficos$hi_porcentaje,2),
pos = 3,
font = 2,
cex = 0.8
)

5.4 Distribución global en porcentaje del desencadenante de
deslizamientos a nivel mundial
par(mar = c(10, 5, 4, 2))
pos_x <- barplot(
tabla_graficos$hi_porcentaje,
names.arg = tabla_graficos$landslide_trigger_consol,
col = "skyblue",
border = "black",
space = 0.2,
las = 2,
ylim = c(0,100),
yaxt = "n",
main = "Gráfica 4: Distribución global en porcentaje del desencadenante\n de deslizamientos a nivel mundial",
xlab = "",
ylab = "Porcentaje (%)",
cex.names = 0.75
)
ticks_y <- seq(0,100,20)
axis(
side = 2,
at = ticks_y,
labels = ticks_y,
las = 1
)
abline(
h = 100,
col = "red",
lty = 2,
lwd = 2
)
text(
x = pos_x,
y = tabla_graficos$hi_porcentaje,
labels = round(tabla_graficos$hi_porcentaje,2),
pos = 3,
font = 2,
cex = 0.8
)

5.5 Diagrama circular
par(mar = c(5,4,4,8))
par(xpd = TRUE)
colores <- c(
"#1f78b4",
"#33a02c",
"#e31a1c",
"#ff7f00",
"#6a3d9a",
"#b15928"
)
pie(
tabla_graficos$hi_porcentaje,
labels = NA,
col = colores,
radius = 0.90,
main = "Gráfica 5: Distribución porcentual de los desencadenantes\n de deslizamientos a nivel mundial"
)
legend(
x = 1.15,
y = 0,
legend = tabla_graficos$landslide_trigger_consol,
fill = colores,
bty = "n",
cex = 0.80
)

par(xpd = FALSE)
6. INDICADORES
6.1 Cálculo de indicadores
indice_moda <- which.max(tabla_graficos$ni)
moda_categoria <- tabla_graficos$landslide_trigger_consol[indice_moda]
moda_ni <- tabla_graficos$ni[indice_moda]
moda_hi <- round(tabla_graficos$hi_porcentaje[indice_moda], 2)
n <- sum(tabla_graficos$ni)
numero_categorias <- nrow(tabla_graficos)
categoria_menos_frecuente <-
tabla_graficos$landslide_trigger_consol[
which.min(tabla_graficos$ni)
]
6.2 Tabla resumen de indicadores
tabla_indicadores <- data.frame(
Indicador = c(
"Tamaño de la muestra",
"Número de categorías",
"Moda",
"Frecuencia absoluta de la moda",
"Frecuencia relativa de la moda (%)",
"Categoría menos frecuente"
),
Resultado = c(
n,
numero_categorias,
moda_categoria,
moda_ni,
moda_hi,
categoria_menos_frecuente
)
)
tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 2**"),
subtitle = md("Indicadores estadísticos de los desencadenantes de deslizamientos")
) %>%
cols_label(
Indicador = "Indicador",
Resultado = "Resultado"
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
)
| Tabla Nro. 2 |
| Indicadores estadísticos de los desencadenantes de deslizamientos |
| Indicador |
Resultado |
| Tamaño de la muestra |
10449 |
| Número de categorías |
6 |
| Moda |
Precipitación |
| Frecuencia absoluta de la moda |
8149 |
| Frecuencia relativa de la moda (%) |
77.99 |
| Categoría menos frecuente |
Estructuras |
| Elaborado por: Grupo 1 – Carrera de Geología |