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(gt)
library(readxl)
# ============================================================
# CARGAR EL ARCHIVO EXCEL
# (usa el nombre exacto de tu archivo)
datos_nuevoartes <- read_excel("datos_nuevoartes.xlsx")
# ============================================================
# ============================================================
# Parámetro:
# Categorías con hi < 1% agrupadas por similitud genética y dinámica
datos_nuevoartes <- datos_nuevoartes %>%
mutate(
landslide_category_consol = case_when(
landslide_category %in% c("debris_flow", "earth_flow", "lahar") ~
"Flujos de suelo y rocas",
landslide_category %in% c("creep", "topple", "translational_slide") ~
"Deformación lenta del terreno",
landslide_category %in% c("complex", "other", "unknown") ~
"Movimientos complejos o no definidos",
landslide_category %in% c("riverbank_collapse", "snow_avalanche") ~
"Otros movimientos poco comunes",
landslide_category == "landslide" ~
"Deslizamiento de tierra",
landslide_category == "mudslide" ~
"Deslizamiento de lodo",
landslide_category == "rock_fall" ~
"Caída de rocas",
TRUE ~ landslide_category
)
)
# ============================================================
# TABLA CONSOLIDADA EN ESPAÑOL
# ============================================================
tabla_category <- datos_nuevoartes %>%
filter(!is.na(landslide_category_consol)) %>%
group_by(landslide_category_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(Categoría = landslide_category_consol) %>%
select(i, Categoría, ni, hi)
# ======= FILA TOTAL =======
fila_total <- tibble(
i = "SUMATORIA",
Categoría = "TOTAL",
ni = sum(tabla_category$ni),
hi = round(sum(tabla_category$hi), 0)
)
tabla_category_final <- bind_rows(tabla_category, fila_total)
# ============================================================
# FORMATO GT
# ============================================================
tabla_category_gt <- tabla_category_final %>%
gt() %>%
tab_header(
title = md("**Tabla N° 1**"),
subtitle = md("**Frecuencia y porcentaje de tipos de movimientos en masa (categorías consolidadas)**")
) %>%
tab_source_note(
source_note = md(
"Criterio de consolidación: hi < 1% y similitud genética del proceso geomorfológico.
Autor: Alessandro"
)
)
tabla_category_gt
| Tabla N° 1 | |||
| Frecuencia y porcentaje de tipos de movimientos en masa (categorías consolidadas) | |||
| i | Categoría | ni | hi |
|---|---|---|---|
| 1 | Deslizamiento de tierra | 7648 | 69.33 |
| 2 | Deslizamiento de lodo | 2100 | 19.04 |
| 3 | Caída de rocas | 671 | 6.08 |
| 4 | Movimientos complejos o no definidos | 338 | 3.06 |
| 5 | Flujos de suelo y rocas | 208 | 1.89 |
| 6 | Otros movimientos poco comunes | 52 | 0.47 |
| 7 | Deformación lenta del terreno | 15 | 0.14 |
| SUMATORIA | TOTAL | 11032 | 100.00 |
| Criterio de consolidación: hi < 1% y similitud genética del proceso geomorfológico. Autor: Alessandro |
|||
# ============================================================
# ORDEN Y ETIQUETAS EN ESPAÑOL PARA GRÁFICAS
# ============================================================
orden_categorias <- c(
"Deslizamiento de tierra",
"Deslizamiento de lodo",
"Caída de rocas",
"Movimientos complejos o no definidos",
"Flujos de suelo y rocas",
"Otros movimientos poco comunes",
"Deformación lenta del terreno"
)
datos_nuevoartes <- datos_nuevoartes %>%
mutate(
landslide_category_consol = factor(
landslide_category_consol,
levels = orden_categorias
)
)
ggplot(
datos_nuevoartes %>% filter(!is.na(landslide_category_consol)),
aes(x = landslide_category_consol)
) +
geom_bar(fill = "skyblue", color = "black") +
labs(
title = "Distribución de los tipos de movimientos en masa",
x = "Tipo de movimiento",
y = "Frecuencia"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1)
)
tabla_category_hi <- datos_nuevoartes %>%
filter(!is.na(landslide_category_consol)) %>%
group_by(landslide_category_consol) %>%
summarise(ni = n(), .groups = "drop") %>%
mutate(
hi = round((ni / sum(ni)) * 100, 2)
)
ggplot(tabla_category_hi,
aes(x = landslide_category_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 tipo de movimiento en masa",
x = "Tipo de movimiento",
y = "Porcentaje (%)"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 30, hjust = 1)
)
# ============================================================