##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stringr)
library(gt)
datos <- read.csv("D:/dataset_CMIO_geologico.csv")
# Extraer variable
df_deposito <- data.frame(
deposito = toupper(trimws(datos$Deposit_Type))
)
# Reemplazar categorías
df_deposito$deposito <- case_when(
toupper(df_deposito$deposito) == "SEDIMENT-HOSTED" ~ "Sediment-hosted",
toupper(df_deposito$deposito) == "SKARN" ~ "Skarn",
toupper(df_deposito$deposito) == "VMS" ~ "VMS",
toupper(df_deposito$deposito) == "PORPHYRY" ~ "Porphyry",
toupper(df_deposito$deposito) == "EPITHERMAL" ~ "Epithermal",
TRUE ~ "Sin registro"
)
# Orden de categorías
orden_deposit <- c(
"Sediment-hosted",
"Skarn",
"VMS",
"Porphyry",
"Epithermal",
"Sin registro"
)
# Convertir en factor ordenado
df_deposito$deposito <- factor(
df_deposito$deposito,
levels = orden_deposit
)
# Frecuencias y probabilidad
ni <- table(df_deposito$deposito)
hi <- round(prop.table(ni), 4)
P <- round(hi * 100, 2)
# Crear tabla base
tabla_finaldeposito <- data.frame(
Tipo_Deposito = names(ni),
ni = as.numeric(ni),
hi = as.numeric(hi),
P = as.numeric(P)
)
# Fila TOTAL
fila_total <- data.frame(
Tipo_Deposito = "TOTAL",
ni = sum(tabla_finaldeposito$ni),
hi = round(sum(tabla_finaldeposito$hi), 4),
P = round(sum(tabla_finaldeposito$P), 2)
)
# Mostrar
tabla_finaldeposito <- rbind(tabla_finaldeposito, fila_total)
tabla_finaldeposito
## Tipo_Deposito ni hi P
## 1 Sediment-hosted 475 0.1900 19.00
## 2 Skarn 521 0.2084 20.84
## 3 VMS 474 0.1896 18.96
## 4 Porphyry 533 0.2132 21.32
## 5 Epithermal 497 0.1988 19.88
## 6 Sin registro 0 0.0000 0.00
## 7 TOTAL 2500 1.0000 100.00
tabla_deposito_gt <- tabla_finaldeposito %>%
gt() %>%
tab_header(
title = md("**Tabla N° 3**"),
subtitle = md("Distribución de probabilidad de los tipos de depósitos minerales analizados en Estados Unidos")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black",
row.striping.include_table_body = TRUE
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Tipo_Deposito == "TOTAL")
)
tabla_deposito_gt
| Tabla N° 3 |
| Distribución de probabilidad de los tipos de depósitos minerales analizados en Estados Unidos |
| Tipo_Deposito |
ni |
hi |
P |
| Sediment-hosted |
475 |
0.1900 |
19.00 |
| Skarn |
521 |
0.2084 |
20.84 |
| VMS |
474 |
0.1896 |
18.96 |
| Porphyry |
533 |
0.2132 |
21.32 |
| Epithermal |
497 |
0.1988 |
19.88 |
| Sin registro |
0 |
0.0000 |
0.00 |
| TOTAL |
2500 |
1.0000 |
100.00 |
| Autor: Grupo 2 |
# Extraer probabilidad (%) sin la fila TOTAL
P_global <- as.numeric(tabla_finaldeposito$P[1:(nrow(tabla_finaldeposito)-1)])
barplot(
P_global,
main = "Gráfica Nº3: Distribución de probabilidad de los tipos\nde depósitos minerales analizados en Estados Unidos",
cex.main = 0.8,
xlab = "Tipo de depósito",
ylab = "Probabilidad (%)",
col = "blue",
names.arg = tabla_finaldeposito$Tipo_Deposito[1:(nrow(tabla_finaldeposito)-1)],
cex.names = 0.9,
ylim = c(0, 100),
las = 1
)

# Eliminar fila TOTAL
tabla_sin_total <- tabla_finaldeposito[
tabla_finaldeposito$Tipo_Deposito != "TOTAL",
]
# Extraer probabilidad de la categoría "Porphyry"
prob_porphyry <- tabla_sin_total$P[
tabla_sin_total$Tipo_Deposito == "Porphyry"
]
# Gráfico de texto explicativo
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "")
text(
x = 1, y = 1,
labels = paste(
"Cálculo de probabilidad\n(Estimación general)\n\n",
"¿Qué probabilidad existe de que una muestra\n",
"geoquímica o geológica analizada en Estados Unidos\n",
"pertenezca a un depósito tipo Porphyry?\n\n",
"Probabilidad = ", prob_porphyry, " (%)",
sep = ""
),
cex = 1.3,
col = "black",
font = 2
)
