CARGA DE DATOS
library(dplyr)
library(stringr)
library(gt)
library(readxl)
datos <- read_excel("D:/mining_dataset_final.xlsx")
ASIGNACION DE VARIABLES
df_roca <- data.frame(roca = toupper(trimws(datos$Tipo_Roca)))
df_roca$roca <- case_when(
toupper(df_roca$roca) == "IGNEA" ~ "Ígnea",
toupper(df_roca$roca) == "SEDIMENTARIA" ~ "Sedimentaria",
toupper(df_roca$roca) == "METAMORFICA" ~ "Metamórfica",
TRUE ~ NA_character_
)
orden_roca <- c(
"Ígnea",
"Sedimentaria",
"Metamórfica"
)
df_roca$roca <- factor(
df_roca$roca,
levels = orden_roca,
ordered = TRUE
)
TABLA DE DISTRIBUCION DE CANTIDAD
TDF_roca <- df_roca %>%
count(roca, name = "ni") %>%
arrange(roca) %>%
mutate(hi = round(ni / sum(ni) * 100, 0))
tabla_roca <- TDF_roca %>%
gt() %>%
tab_header(
title = "Tabla N° 1",
subtitle = "Distribución del Tipo de Roca"
)
tabla_roca
| Tabla N° 1 | ||
| Distribución del Tipo de Roca | ||
| roca | ni | hi |
|---|---|---|
| Ígnea | 600 | 30 |
| Sedimentaria | 1000 | 50 |
| Metamórfica | 400 | 20 |
# Agregamos fila TOTAL
tabla_final_roca <- TDF_roca %>%
mutate(
roca = as.character(roca)
)
tabla_final_roca <- bind_rows(
tabla_final_roca,
data.frame(
roca = "TOTAL",
ni = sum(tabla_final_roca$ni),
hi = sum(tabla_final_roca$hi)
)
)
# TABLA ESQUELETO
tabla_roca_gt <- tabla_final_roca %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Distribución ordinal del tipo de roca")
) %>%
cols_label(
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 = roca == "TOTAL"
)
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
)
tabla_roca_gt
| Tabla Nº2 | ||
| Distribución ordinal del tipo de roca | ||
| Tipo de Roca | Frecuencia | Porcentaje (%) |
|---|---|---|
| Ígnea | 600 | 30 |
| Sedimentaria | 1,000 | 50 |
| Metamórfica | 400 | 20 |
| TOTAL | 2,000 | 100 |
| Autor: Grupo 2 | ||
# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_roca$ni,
main = "Gráfica Nº1: Frecuencia del Tipo de Roca",
xlab = "Tipo de Roca",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_roca$roca,
cex.names = 0.8,
las = 1)
# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_roca$ni,
main = "Gráfica Nº2: Frecuencia del Tipo de Roca (Escala Ajustada)",
xlab = "Tipo de Roca",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_roca$roca,
cex.names = 0.8,
las = 1,
ylim = c(0, max(TDF_roca$ni) * 1.2))
# Gráfica Nº3: Frecuencia relativa
barplot(TDF_roca$hi,
main = "Gráfica Nº3: Porcentaje del Tipo de Roca",
xlab = "Tipo de Roca",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_roca$roca,
cex.names = 0.8,
las = 1)
# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_roca$hi,
main = "Gráfica Nº4: Porcentaje del Tipo de Roca (Escala Completa)",
xlab = "Tipo de Roca",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_roca$roca,
cex.names = 0.8,
las = 1,
ylim = c(0, 100))
# Gráfico circular
par(mar = c(4, 4, 4, 8))
colores <- rainbow(length(TDF_roca$hi))
pie(TDF_roca$hi,
col = colores,
main = "Distribución del Tipo de Roca",
labels = NA)
legend("right",
legend = paste(TDF_roca$roca, TDF_roca$hi, "%"),
fill = colores,
title = "ROCAS",
bty = "o",
xpd = TRUE,
inset = c(-0.25, 0))
# Moda
moda_roca <- TDF_roca[TDF_roca$ni == max(TDF_roca$ni), ]
moda_roca
## roca ni hi
## 2 Sedimentaria 1000 50
# Mediana
TDF_roca <- TDF_roca %>%
mutate(Ni = cumsum(ni))
N <- sum(TDF_roca$ni)
mediana_roca <- TDF_roca %>%
filter(Ni >= N/2) %>%
slice(1)
mediana_roca
## roca ni hi Ni
## 1 Sedimentaria 1000 50 1600
#conclucion