CARGA DE DATOS
library(dplyr)
library(stringr)
library(gt)
datos <- read.csv("D:/sampling_methods_2500.csv")
ASIGNACION DE VARIABLES
df_muestreo <- data.frame(muestreo = toupper(trimws(datos$SAMPLING_METHOD)))
df_muestreo$muestreo <- case_when(
toupper(df_muestreo$muestreo) == "DIAMOND CORE DRILLING" ~ "Diamond Core Drilling",
toupper(df_muestreo$muestreo) == "REVERSE CIRCULATION (RC)" ~ "Reverse Circulation (RC)",
toupper(df_muestreo$muestreo) == "CHANNEL SAMPLING" ~ "Channel Sampling",
toupper(df_muestreo$muestreo) == "CHIP SAMPLING" ~ "Chip Sampling",
toupper(df_muestreo$muestreo) == "COMPOSITE SAMPLING" ~ "Composite Sampling",
toupper(df_muestreo$muestreo) == "SYSTEMATIC SAMPLING" ~ "Systematic Sampling",
toupper(df_muestreo$muestreo) == "RANDOM SAMPLING" ~ "Random Sampling",
toupper(df_muestreo$muestreo) == "STRATIFIED SAMPLING" ~ "Stratified Sampling",
TRUE ~ NA_character_
)
orden_muestreo <- c(
"Diamond Core Drilling",
"Reverse Circulation (RC)",
"Channel Sampling",
"Chip Sampling",
"Composite Sampling",
"Systematic Sampling",
"Random Sampling",
"Stratified Sampling"
)
TABLA DE DISTRIBUCION DE CANTIDAD
df_muestreo$muestreo <- factor(
df_muestreo$muestreo,
levels = orden_muestreo,
ordered = TRUE
)
TDF_muestreo <- df_muestreo %>%
count(muestreo, name = "ni") %>%
arrange(muestreo)
# Calculamos los porcentajes redondeados
TDF_muestreo <- TDF_muestreo %>%
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_muestreo$hi)
if (diferencia != 0) {
pos_max <- choosing_row <- which.max(TDF_muestreo$ni)
TDF_muestreo$hi[pos_max] <- TDF_muestreo$hi[pos_max] + diferencia
}
# Tabla
tabla_muestreo <- TDF_muestreo %>%
gt() %>%
tab_header(
title = "Tabla N° 1",
subtitle = "Distribución del Método de Muestreo"
) %>%
grand_summary_rows(
columns = c(ni, hi),
fns = list(Total = ~sum(., na.rm = TRUE)),
fmt = list(~fmt_number(., decimals = 0))
)
tabla_muestreo
| Tabla N° 1 | |||
| Distribución del Método de Muestreo | |||
| muestreo | ni | hi | |
|---|---|---|---|
| Diamond Core Drilling | 878 | 36 | |
| Reverse Circulation (RC) | 608 | 24 | |
| Channel Sampling | 276 | 11 | |
| Chip Sampling | 184 | 7 | |
| Composite Sampling | 169 | 7 | |
| Systematic Sampling | 205 | 8 | |
| Random Sampling | 71 | 3 | |
| Stratified Sampling | 109 | 4 | |
| Total | — | 2,500 | 100 |
# Agregamos fila TOTAL
tabla_final_muestreo <- TDF_muestreo %>%
mutate(
muestreo = as.character(muestreo)
)
tabla_final_muestreo <- bind_rows(
tabla_final_muestreo,
data.frame(
muestreo = "TOTAL",
ni = sum(tabla_final_muestreo$ni),
hi = sum(tabla_final_muestreo$hi)
)
)
# TABLA ESQUELETO
tabla_muestreo_gt <- tabla_final_muestreo %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Distribución ordinal del método de muestreo")
) %>%
cols_label(
muestreo = "Método de Muestreo",
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 = muestreo == "TOTAL"
)
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
)
tabla_muestreo_gt
| Tabla Nº2 | ||
| Distribución ordinal del método de muestreo | ||
| Método de Muestreo | Frecuencia | Porcentaje (%) |
|---|---|---|
| Diamond Core Drilling | 878 | 36 |
| Reverse Circulation (RC) | 608 | 24 |
| Channel Sampling | 276 | 11 |
| Chip Sampling | 184 | 7 |
| Composite Sampling | 169 | 7 |
| Systematic Sampling | 205 | 8 |
| Random Sampling | 71 | 3 |
| Stratified Sampling | 109 | 4 |
| TOTAL | 2,500 | 100 |
| Autor: Grupo 2 | ||
# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_muestreo$ni,
main = "Gráfica Nº1: Frecuencia del Método de Muestreo",
xlab = "Método de Muestreo",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_muestreo$muestreo,
cex.names = 0.6,
las = 2) # las = 2 para rotar nombres si son largos
# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_muestreo$ni,
main = "Gráfica Nº2: Frecuencia del Método de Muestreo (Escala Ajustada)",
xlab = "Método de Muestreo",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_muestreo$muestreo,
cex.names = 0.6,
las = 2,
ylim = c(0, max(TDF_muestreo$ni) * 1.2))
# Gráfica Nº3: Frecuencia relativa
barplot(TDF_muestreo$hi,
main = "Gráfica Nº3: Porcentaje del Método de Muestreo",
xlab = "Método de Muestreo",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_muestreo$muestreo,
cex.names = 0.6,
las = 2)
# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_muestreo$hi,
main = "Gráfica Nº4: Porcentaje del Método de Muestreo (Escala Completa)",
xlab = "Método de Muestreo",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_muestreo$muestreo,
cex.names = 0.6,
las = 2,
ylim = c(0, 100))
# Gráfico circular
par(mar = c(4, 4, 4, 10)) # Margen derecho más amplio para leyenda larga
colores <- rainbow(length(TDF_muestreo$hi))
pie(TDF_muestreo$hi,
col = colores,
main = "Distribución del Método de Muestreo",
labels = NA)
legend("right",
legend = paste(TDF_muestreo$muestreo, TDF_muestreo$hi, "%"),
fill = colores,
title = "MÉTODOS",
bty = "o",
xpd = TRUE,
inset = c(-0.46, 0))
# Moda
moda_muestreo <- TDF_muestreo[TDF_muestreo$ni == max(TDF_muestreo$ni), ]
moda_muestreo
## muestreo ni hi
## 1 Diamond Core Drilling 878 36
# Mediana
TDF_muestreo <- TDF_muestreo %>%
mutate(Ni = cumsum(ni))
N <- sum(TDF_muestreo$ni)
mediana_muestreo <- TDF_muestreo %>%
filter(Ni >= N/2) %>%
slice(1)
mediana_muestreo
## muestreo ni hi Ni
## 1 Reverse Circulation (RC) 608 24 1486
"La variable método de muestreo tiene como valor más frecuente Diamond Core Drilling. Lo cual resulta favorable para la exploración minera, ya que permite obtener muestras continuas y de alta precisión geológica."
## [1] "La variable método de muestreo tiene como valor más frecuente Diamond Core Drilling. Lo cual resulta favorable para la exploración minera, ya que permite obtener muestras continuas y de alta precisión geológica."