CARGA DE DATOS
library(dplyr)
library(stringr)
library(gt)
datos <- read.csv("D:/roca_de_caja_2500_registros.csv")
ASIGNACION DE VARIABLES
Se agrupo la variable para poder trabajar de mejor manera
## ASIGNACIÓN Y CATEGORIZACIÓN DE VARIABLES
# 1. Limpieza básica
df_roca_de_caja <- data.frame(
roca_de_caja_especifica = str_to_title(trimws(datos$ROCA_DE_CAJA))
)
# 2. Creación de la variable categórica agrupada (Tipo de Roca)
df_roca_de_caja <- df_roca_de_caja %>%
mutate(
grupo_roca = case_when(
# ROCAS SEDIMENTARIAS
roca_de_caja_especifica %in% c("Limestone", "Dolomite", "Sandstone", "Quartzite",
"Shale", "Siltstone", "Conglomerate", "Chert",
"Unconsolidated Sediment") ~ "Sedimentaria",
# ROCAS ÍGNEAS (Plutónicas y Volcánicas)
roca_de_caja_especifica %in% c("Granite", "Granodiorite", "Quartz Monzonite", "Diorite",
"Porphyry", "Rhyolite", "Andesite", "Dacite",
"Basalt", "Ash-Fall Tuff", "Ash-Tuff", "Volcanic Breccia") ~ "Ígnea",
# ROCAS METAMÓRFICAS Y ESTRUCTURALES / HIDROTERMALES
roca_de_caja_especifica %in% c("Schist", "Gneiss", "Marble", "Phyllite",
"Amphibolite", "Fault Breccia", "Skarn", "Gossan") ~ "Metamórfica / Alteración",
TRUE ~ "Otra"
)
)
# 3. Definición de orden de factores para la nueva variable agrupada
orden_grupos <- c("Sedimentaria", "Ígnea", "Metamórfica / Alteración")
df_roca_de_caja$grupo_roca <- factor(
df_roca_de_caja$grupo_roca,
levels = orden_grupos,
ordered = TRUE
)
# 4. (Opcional) Factor ordinal para la variable específica por si mantienes subanálisis
orden_roca_de_caja <- c(
"Limestone", "Dolomite", "Sandstone", "Quartzite", "Shale", "Siltstone",
"Conglomerate", "Chert", "Granite", "Granodiorite", "Quartz Monzonite",
"Diorite", "Porphyry", "Rhyolite", "Andesite", "Dacite", "Basalt",
"Ash-Fall Tuff", "Volcanic Breccia", "Schist", "Gneiss", "Marble",
"Phyllite", "Amphibolite", "Fault Breccia", "Skarn", "Gossan", "Unconsolidated Sediment"
)
df_roca_de_caja$roca_de_caja_especifica <- factor(
df_roca_de_caja$roca_de_caja_especifica,
levels = orden_roca_de_caja,
ordered = TRUE
)
TABLA DE DISTRIBUCION DE CANTIDAD
# Factor ordinal para la variable agrupada
df_roca_de_caja$grupo_roca <- factor(
df_roca_de_caja$grupo_roca,
levels = orden_grupos,
ordered = TRUE
)
# Conteo y ordenamiento por grupos
TDF_roca_de_caja <- df_roca_de_caja %>%
count(grupo_roca, name = "ni") %>%
arrange(grupo_roca)
# Calculamos los porcentajes redondeados
TDF_roca_de_caja <- TDF_roca_de_caja %>%
mutate(hi = round(ni / sum(ni) * 100, 0))
# Ajuste por redondeo:
# La diferencia se le asigna a la categoría con mayor frecuencia
diferencia <- 100 - sum(TDF_roca_de_caja$hi)
if (diferencia != 0) {
pos_max <- which.max(TDF_roca_de_caja$ni)
TDF_roca_de_caja$hi[pos_max] <-
TDF_roca_de_caja$hi[pos_max] + diferencia
}
# Tabla básica
tabla_roca_de_caja <- TDF_roca_de_caja %>%
gt() %>%
tab_header(
title = "Tabla N° 1",
subtitle = "Distribución del Tipo de Roca de Caja"
) %>%
grand_summary_rows(
columns = c(ni, hi),
fns = list(
Total = ~sum(., na.rm = TRUE)
),
fmt = list(
~fmt_number(., decimals = 0)
)
)
tabla_roca_de_caja
| Tabla N° 1 | |||
| Distribución del Tipo de Roca de Caja | |||
| grupo_roca | ni | hi | |
|---|---|---|---|
| Sedimentaria | 809 | 32 | |
| Ígnea | 979 | 40 | |
| Metamórfica / Alteración | 712 | 28 | |
| Total | — | 2,500 | 100 |
# Agregamos fila TOTAL para la versión formateada
tabla_final_roca_de_caja <- TDF_roca_de_caja %>%
mutate(
grupo_roca = as.character(grupo_roca)
)
tabla_final_roca_de_caja <- bind_rows(
tabla_final_roca_de_caja,
data.frame(
grupo_roca = "TOTAL",
ni = sum(tabla_final_roca_de_caja$ni),
hi = sum(tabla_final_roca_de_caja$hi)
)
)
# TABLA ESQUELETO FORMATEADA CON GT
tabla_roca_de_caja_gt <- tabla_final_roca_de_caja %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Distribución ordinal por tipo de roca de caja")
) %>%
cols_label(
grupo_roca = "Tipo de Roca",
ni = "Frecuencia",
hi = "Porcentaje (%)"
) %>%
cols_align(
align = "center",
columns = everything()
) %>%
fmt_number(
columns = c(ni, hi),
decimals = 0
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = grupo_roca == "TOTAL"
)
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
)
tabla_roca_de_caja_gt
| Tabla Nº2 | ||
| Distribución ordinal por tipo de roca de caja | ||
| Tipo de Roca | Frecuencia | Porcentaje (%) |
|---|---|---|
| Sedimentaria | 809 | 32 |
| Ígnea | 979 | 40 |
| Metamórfica / Alteración | 712 | 28 |
| TOTAL | 2,500 | 100 |
| Autor: Grupo 2 | ||
## GRÁFICAS DE DISTRIBUCIÓN DE CANTIDAD
# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_roca_de_caja$ni,
main = "Gráfica Nº1: Distribución de cantidad por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
xlab = "Tipo de Roca de Caja",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_roca_de_caja$grupo_roca,
cex.names = 0.9,
las = 1)
# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_roca_de_caja$ni,
main = "Gráfica Nº2: Distribución de cantidad por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
xlab = "Tipo de Roca de Caja",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_roca_de_caja$grupo_roca,
cex.names = 0.9,
las = 1,
ylim = c(0, max(TDF_roca_de_caja$ni) * 1.2))
# Gráfica Nº3: Frecuencia relativa
barplot(TDF_roca_de_caja$hi,
main = "Gráfica Nº3: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
xlab = "Tipo de Roca de Caja",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_roca_de_caja$grupo_roca,
cex.names = 0.9,
las = 1)
# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_roca_de_caja$hi,
main = "Gráfica Nº4: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
xlab = "Tipo de Roca de Caja",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_roca_de_caja$grupo_roca,
cex.names = 0.9,
las = 1,
ylim = c(0, 100))
# Gráfico circular
par(mar = c(4, 4, 4, 10))
colores <- rainbow(length(TDF_roca_de_caja$hi))
pie(TDF_roca_de_caja$hi,
col = colores,
main = "Gráfica Nº5: Distribución en porcentaje por tipo de roca de caja\nen depósitos minerales de los Estados Unidos",
labels = NA)
legend("right",
legend = paste(TDF_roca_de_caja$grupo_roca,
TDF_roca_de_caja$hi, "%"),
fill = colores,
title = "TIPO DE ROCA",
bty = "o",
xpd = TRUE,
inset = c(-0.35, 0),
cex = 0.8)
## INDICADORES ESTADISTICOS
# Moda (Tipo de roca con mayor frecuencia absoluta ni)
moda_roca_de_caja <- TDF_roca_de_caja[
TDF_roca_de_caja$ni == max(TDF_roca_de_caja$ni), ]
moda_roca_de_caja
## grupo_roca ni hi
## 2 Ígnea 979 40
# Mediana (Frecuencia acumulada Ni >= N/2)
TDF_roca_de_caja <- TDF_roca_de_caja %>%
mutate(Ni = cumsum(ni))
N <- sum(TDF_roca_de_caja$ni)
mediana_roca_de_caja <- TDF_roca_de_caja %>%
filter(Ni >= N/2) %>%
slice(1)
mediana_roca_de_caja
## grupo_roca ni hi Ni
## 1 Ígnea 979 40 1788
El análisis estadístico por tipo de roca de caja revela que la categoría más frecuente corresponde a las rocas ígneas, representando un 40% del total de depósitos analizados. Los cuales son clave para la formación de sistemas de alteración y mineralización de alto interés económico (como pórfidos y epitermales).