library(readr)
library(dplyr)
library(gt)
library(magrittr)
Sedimentos_Marinos <- read.csv(
"C:\\Users\\dougl\\Downloads\\Sedimentos_Marinos.csv",
header = TRUE,
sep = ";",
dec = ".",
stringsAsFactors = FALSE # importante para evitar factores
)
Sedimentos_Marinos <- Sedimentos_Marinos %>%
mutate(
Clasificacion = case_when(
.data$CLASSIFICATION == "BEDROCK" ~ "Bedrock",
.data$CLASSIFICATION == "BOULDERS" ~ "Boulders",
.data$CLASSIFICATION %in% c("CLAY", "CLAYEY SAND", "CLAYEY SILT") ~ "Clay",
.data$CLASSIFICATION %in% c("MUD", "MUDDY SAND") ~ "Mud",
.data$CLASSIFICATION %in% c("SILT", "SILTY CLAY", "SILTY SAND") ~ "Silt",
.data$CLASSIFICATION %in% c("SAND", "SAND SILT CLAY", "SANDY SILT") ~ "Sand",
.data$CLASSIFICATION %in% c("GRAVEL", "GRAVEL > 10%", "GRAVELLY SEDIMENT") ~ "Gravel",
TRUE ~ NA_character_
)
)
Sedimentos_Marinos <- Sedimentos_Marinos %>%
filter(!is.na(Clasificacion))
#Tamaño Muestral limpio
n <- nrow(Sedimentos_Marinos)
cat("Tamaño de la muestra limpia (n):", n)
## Tamaño de la muestra limpia (n): 7208
#Orden de datos granulometricos
orden_granulometrico <- c(
"Clay", "Mud", "Silt", "Sand", "Gravel", "Boulders", "Bedrock"
)
Sedimentos_Marinos$Clasificacion <- factor(
Sedimentos_Marinos$Clasificacion,
levels = orden_granulometrico,
ordered = TRUE
)
is.ordered(Sedimentos_Marinos$Clasificacion)
## [1] TRUE
CARGA DE LIBRERÍAS
library(dplyr)
library(knitr)
library(e1071)
library(moments)
##
## Adjuntando el paquete: 'moments'
## The following objects are masked from 'package:e1071':
##
## kurtosis, moment, skewness
library(kableExtra)
##
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(gt)
library(magrittr)
TABLA DE DISTRIBUCIÓN DE FRECUENCIA
TDFClasificacion <- table(Sedimentos_Marinos$Clasificacion)
TDFClasificacion <- as.data.frame(TDFClasificacion)
colnames(TDFClasificacion) <- c("Grupo", "Freq")
TDFClasificacionFinal <- TDFClasificacion %>%
mutate(
ni = Freq,
hi = round((Freq / sum(Freq)) * 100, 2)
)
diferencia <- 100 - sum(TDFClasificacionFinal$hi)
TDFClasificacionFinal$hi[nrow(TDFClasificacionFinal)] <-
TDFClasificacionFinal$hi[nrow(TDFClasificacionFinal)] + diferencia
TDFClasificacionFinal <- TDFClasificacionFinal %>%
select(Grupo, ni, hi)
TDFClasificacionFinal
## Grupo ni hi
## 1 Clay 969 13.44
## 2 Mud 5 0.07
## 3 Silt 855 11.86
## 4 Sand 3054 42.37
## 5 Gravel 2161 29.98
## 6 Boulders 143 1.98
## 7 Bedrock 21 0.30
TABLA FINAL CON ESTILO
# Crear fila total
total <- TDFClasificacionFinal %>%
summarise(across(where(is.numeric), sum, na.rm = TRUE)) %>%
mutate(Grupo = "Total")
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(where(is.numeric), sum, na.rm = TRUE)`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
# Unir con el dataframe original
TDFClasificacionFinal_total <- bind_rows(TDFClasificacionFinal, total)
# Crear tabla gt
tabla_clasificacion <- TDFClasificacionFinal_total %>%
gt() %>%
tab_header(
title = md("**Tabla N°1**"),
subtitle = md("Frecuencias Absolutas y Relativas de la Clasificación Granulométrica de Sedimentos Marinos (1995–2024)")
) %>%
tab_source_note(
source_note = md("Autor: Grupo Geo-Minas")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Grupo == "Total")
)
tabla_clasificacion
| Tabla N°1 | ||
| Frecuencias Absolutas y Relativas de la Clasificación Granulométrica de Sedimentos Marinos (1995–2024) | ||
| Grupo | ni | hi |
|---|---|---|
| Clay | 969 | 13.44 |
| Mud | 5 | 0.07 |
| Silt | 855 | 11.86 |
| Sand | 3054 | 42.37 |
| Gravel | 2161 | 29.98 |
| Boulders | 143 | 1.98 |
| Bedrock | 21 | 0.30 |
| Total | 7208 | 100.00 |
| Autor: Grupo Geo-Minas | ||
Los datos fueron agrupados debido a la gran cantidad de los mismos.
# Excluir fila Total
TDFClasificacionPlot <- TDFClasificacionFinal[
TDFClasificacionFinal$Grupo != "Total", ]
barplot(
TDFClasificacionPlot$ni,
main = "Diagrama Nº1: Frecuencia Local (ni) de la Clasificación",
xlab = "Clasificación Granulométrica",
ylab = "Cantidad",
col = "cyan",
names.arg = TDFClasificacionPlot$Grupo,
las = 2,
cex.names = 0.7
)
barplot(
TDFClasificacionPlot$ni,
main = "Gráfica Nº2: Frecuencia Global (ni) de la Clasificación Granulométrica",
xlab = "Clasificación Granulométrica",
ylab = "Cantidad",
col = "cyan",
names.arg = TDFClasificacionPlot$Grupo,
las = 2,
ylim = c(0, sum(TDFClasificacionPlot$ni))
)
barplot(
TDFClasificacionPlot$hi,
main = "Gráfica Nº3: Frecuencia Relativa Local (hi)",
xlab = "Clasificación Granulométrica",
ylab = "Porcentaje (%)",
col = "blue",
names.arg = TDFClasificacionPlot$Grupo,
las = 2,
cex.names = 0.7
)
barplot(
TDFClasificacionPlot$hi,
main = "Gráfica Nº4: Frecuencia Relativa Global (hi)",
xlab = "Clasificación Granulométrica",
ylab = "Porcentaje (%)",
col = "blue",
names.arg = TDFClasificacionPlot$Grupo,
las = 2,
ylim = c(0, 100)
)
# Excluir fila Total
TDFPie <- TDFClasificacionFinal[
TDFClasificacionFinal$Grupo != "Total", ]
# Paleta de colores pastel (sedimentos marinos)
colores_sedimentos <- c(
"Clay" = "#D8CFE2", # arcilla clara
"Mud" = "#CFC9B2", # lodo beige
"Silt" = "#E6D8AD", # limo amarillo suave
"Sand" = "#F3E5AB", # arena
"Gravel" = "#D2B48C", # grava café claro
"Boulders" = "#C4B7A6", # roca clara
"Bedrock" = "#B0A18E" # roca base clara
)
# Asegurar correspondencia color–categoría
colores_pie <- colores_sedimentos[TDFPie$Grupo]
# Etiquetas internas (porcentaje)
etiquetas <- paste0(round(TDFPie$hi, 0.4), "%")
# Gráfico circular
pie(
TDFPie$hi,
labels = etiquetas,
col = colores_pie,
main = "Gráfica Nº5: Distribución Granulométrica de Sedimentos Marinos (%)",
radius = 1
)
legend(
"bottomright",
legend = TDFPie$Grupo,
fill = colores_pie,
title = "Clasificación",
cex = 0.6,
bty = "n"
)
n <- length(Sedimentos_Marinos$Clasificacion)
n
## [1] 7208
tabla_freq <- table(Sedimentos_Marinos$Clasificacion)
moda_clasificacion <- names(tabla_freq)[which.max(tabla_freq)]
moda_clasificacion
## [1] "Sand"
tabla_indicadores <- data.frame(
Indicador = c("Tamaño muestral (n)", "Moda"),
Resultado = c(
n,
as.character(moda_clasificacion)
)
)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N°2**"),
subtitle = md("Indicadores Estadísticos de la Clasificación Granulométrica")
) %>%
tab_source_note(
source_note = md("Autor: Grupo Geo-Minas")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Indicador == "Moda")
)
tabla_indicadores_gt
| Tabla N°2 | |
| Indicadores Estadísticos de la Clasificación Granulométrica | |
| Indicador | Resultado |
|---|---|
| Tamaño muestral (n) | 7208 |
| Moda | Sand |
| Autor: Grupo Geo-Minas | |
Al ser el tamaño muestral un valor par no se puede determinar con exactitud la mediana.
La variable Clasificación Granulométrica presenta registros que fluctúan entre Clay (arcilla) y Bedrock (roca madre), y sus valores se encuentran predominantemente en torno a la categoría de Sand (arena), la cual representa la mayoria de la muestra total. Esta relación es fundamental para el análisis minero y geotécnico, ya que la variación de la textura con la profundidad condiciona la resistencia del macizo y la estabilidad de las excavaciones lo que nos permite anticipar cambios en la presión de poros y la permeabilidad a medida que aumenta la profundidad operativa.