CARGA DE DATOS
library(dplyr)
library(stringr)
library(gt)
datos <- read.csv("D:/modo_de_ocurrencia_2500_registros.csv")
ASIGNACION DE VARIABLES
## ASIGNACION DE VARIABLES
# Limpieza básica
df_modo <- data.frame(
modo_ocurrencia = trimws(datos$MODO_DE_OCURRENCIA)
)
# Convertir a formato uniforme (Title Case)
df_modo$modo_ocurrencia <- str_to_title(
df_modo$modo_ocurrencia
)
# Categorías para variable nominal
categorias_modo <- c(
"Disseminated",
"Vein-Hosted",
"Massive",
"Fracture-Controlled"
)
# Factor nominal (ordered = FALSE)
df_modo$modo_ocurrencia <- factor(
df_modo$modo_ocurrencia,
levels = categorias_modo,
ordered = FALSE
)
# Ver valores únicos procesados
unique(df_modo$modo_ocurrencia)
## [1] Fracture-Controlled Disseminated Vein-Hosted
## [4] Massive
## Levels: Disseminated Vein-Hosted Massive Fracture-Controlled
TABLA DE DISTRIBUCION DE CANTIDAD
## TABLA DE DISTRIBUCIÓN DE CANTIDAD
# Asignación y ordenación de la variable nominal
df_modo$modo_ocurrencia <- factor(
df_modo$modo_ocurrencia,
levels = categorias_modo,
ordered = FALSE
)
TDF_modo <- df_modo %>%
count(modo_ocurrencia, name = "ni") %>%
arrange(modo_ocurrencia)
# Calculamos los porcentajes redondeados
TDF_modo <- TDF_modo %>%
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_modo$hi)
if (diferencia != 0) {
pos_max <- choosing_row <- which.max(TDF_modo$ni)
TDF_modo$hi[pos_max] <-
TDF_modo$hi[pos_max] + diferencia
}
# Tabla N° 1
tabla_modo <- TDF_modo %>%
gt() %>%
tab_header(
title = "Tabla N° 1",
subtitle = "Distribución del Modo de Ocurrencia"
) %>%
grand_summary_rows(
columns = c(ni, hi),
fns = list(
Total = ~sum(., na.rm = TRUE)
),
fmt = list(
~fmt_number(., decimals = 0)
)
)
tabla_modo
| Tabla N° 1 | |||
| Distribución del Modo de Ocurrencia | |||
| modo_ocurrencia | ni | hi | |
|---|---|---|---|
| Disseminated | 1025 | 41 | |
| Vein-Hosted | 725 | 29 | |
| Massive | 275 | 11 | |
| Fracture-Controlled | 475 | 19 | |
| Total | — | 2,500 | 100 |
# Agregamos fila TOTAL
tabla_final_modo <- TDF_modo %>%
mutate(
modo_ocurrencia = as.character(modo_ocurrencia)
)
tabla_final_modo <- bind_rows(
tabla_final_modo,
data.frame(
modo_ocurrencia = "TOTAL",
ni = sum(tabla_final_modo$ni),
hi = sum(tabla_final_modo$hi)
)
)
# TABLA ESQUELETO (Tabla Nº2)
tabla_modo_gt <- tabla_final_modo %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Distribución nominal del modo de ocurrencia")
) %>%
cols_label(
modo_ocurrencia = "Modo de Ocurrencia",
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 = modo_ocurrencia == "TOTAL"
)
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
)
tabla_modo_gt
| Tabla Nº2 | ||
| Distribución nominal del modo de ocurrencia | ||
| Modo de Ocurrencia | Frecuencia | Porcentaje (%) |
|---|---|---|
| Disseminated | 1,025 | 41 |
| Vein-Hosted | 725 | 29 |
| Massive | 275 | 11 |
| Fracture-Controlled | 475 | 19 |
| TOTAL | 2,500 | 100 |
| Autor: Grupo 2 | ||
# Ajustar márgenes para nombres largos si se requiere
par(las = 2, mar = c(8, 4, 4, 2))
# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_modo$ni,
main = "Gráfica Nº1: Distribución de cantidad según el modo de ocurrencia\nen depósitos minerales de Estados Unidos",
xlab = "",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_modo$modo_ocurrencia,
cex.names = 0.8)
# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_modo$ni,
main = "Gráfica Nº2: Distribución ajustada según el modo de ocurrencia\nen depósitos minerales de Estados Unidos",
xlab = "",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_modo$modo_ocurrencia,
cex.names = 0.8,
ylim = c(0, max(TDF_modo$ni) * 1.2))
# Gráfica Nº3: Frecuencia relativa
barplot(TDF_modo$hi,
main = "Gráfica Nº3: Porcentaje según el modo de ocurrencia\nen depósitos minerales de Estados Unidos",
xlab = "",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_modo$modo_ocurrencia,
cex.names = 0.8)
# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_modo$hi,
main = "Gráfica Nº4: Porcentaje (0-100%) según el modo de ocurrencia\nen depósitos minerales de Estados Unidos",
xlab = "",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_modo$modo_ocurrencia,
cex.names = 0.8,
ylim = c(0, 100))
# Gráfico circular
par(mar = c(4, 4, 4, 10))
colores <- rainbow(length(TDF_modo$hi))
pie(TDF_modo$hi,
col = colores,
main = "Gráfica Nº5: Distribución porcentual del modo de ocurrencia\nen depósitos minerales de Estados Unidos",
labels = NA)
legend("right",
legend = paste(TDF_modo$modo_ocurrencia, TDF_modo$hi, "%"),
fill = colores,
title = "MODO DE OCURRENCIA",
bty = "o",
xpd = TRUE,
inset = c(-0.45, 0))
# Moda
moda_modo <- TDF_modo[TDF_modo$ni == max(TDF_modo$ni), ]
moda_modo
## modo_ocurrencia ni hi
## 1 Disseminated 1025 41
# Mediana
TDF_modo <- TDF_modo %>%
mutate(Ni = cumsum(ni))
N <- sum(TDF_modo$ni)
mediana_modo <- TDF_modo %>%
filter(Ni >= N/2) %>%
slice(1)
mediana_modo
## modo_ocurrencia ni hi Ni
## 1 Vein-Hosted 725 29 1750
La variable Modo de Ocurrencia presenta como categoría predominante a la mineralización de tipo Disseminated con un 41% del total de los datos analizados. Al ser una variable cualitativa nomina,lo cual es un factor determinante para seleccionar los métodos de minado masivo y de procesamiento metalúrgico más eficientes.