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