library(dplyr)
## 
## 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:/provincias_estados_unidos_2500.csv")

# Extraer variable

df_provincia <- data.frame(

provincia = toupper(trimws(datos$PROVINCIA))

)

# Reemplazar categorías

df_provincia$provincia <- case_when(

# --- ESTADOS DEL NORTE ---

df_provincia$provincia %in% c(

"WASHINGTON", "OREGON", "IDAHO", "MONTANA", "NORTH DAKOTA",

"SOUTH DAKOTA", "MINNESOTA", "WISCONSIN", "MICHIGAN", "WYOMING",

"MAINE", "NEW HAMPSHIRE", "VERMONT", "MASSACHUSETTS",

"RHODE ISLAND", "CONNECTICUT", "NEW YORK"

) ~ "Norte",

# --- ESTADOS DEL CENTRO ---

df_provincia$provincia %in% c(

"NEVADA", "UTAH", "COLORADO", "NEBRASKA", "IOWA",

"ILLINOIS", "INDIANA", "OHIO", "CALIFORNIA", "SUR DE CALIFORNIA",

"NORTE DE CALIFORNIA", "KANSAS", "MISSOURI", "KENTUCKY",

"WEST VIRGINIA", "VIRGINIA", "MARYLAND", "DELAWARE",

"PENNSYLVANIA", "NEW JERSEY"

) ~ "Centro",

# --- ESTADOS DEL SUR ---

df_provincia$provincia %in% c(

"ARIZONA", "NEW MEXICO", "TEXAS", "OKLAHOMA", "ARKANSAS",

"LOUISIANA", "MISSISSIPPI", "ALABAMA", "TENNESSEE",

"NORTH CAROLINA", "SOUTH CAROLINA", "GEORGIA", "FLORIDA"

) ~ "Sur",

TRUE ~ "Centro"

)

# Orden de categorías

orden_provincia <- c(

"Norte",

"Centro",

"Sur",

"Sin registro"

)

# Convertir en factor ordenado

df_provincia$provincia <- factor(

df_provincia$provincia,

levels = orden_provincia

)

# Frecuencias y probabilidad

ni <- table(df_provincia$provincia)

hi <- round(prop.table(ni), 4)

P <- round(hi * 100, 2)

# Crear tabla base

tabla_finalprovincia <- data.frame(

Provincia = names(ni),

ni = as.numeric(ni),

hi = as.numeric(hi),

P = as.numeric(P)

)

# Fila TOTAL

fila_total <- data.frame(

Provincia = "TOTAL",

ni = sum(tabla_finalprovincia$ni),

hi = round(sum(tabla_finalprovincia$hi), 4),

P = round(sum(tabla_finalprovincia$P), 2)

)

# Mostrar

tabla_finalprovincia <- rbind(tabla_finalprovincia, fila_total)

tabla_finalprovincia
##      Provincia   ni     hi      P
## 1        Norte  914 0.3656  36.56
## 2       Centro  978 0.3912  39.12
## 3          Sur  608 0.2432  24.32
## 4 Sin registro    0 0.0000   0.00
## 5        TOTAL 2500 1.0000 100.00
tabla_provincia_gt <- tabla_finalprovincia %>%

gt() %>%

tab_header(

title = md("**Tabla N° 2**"),

subtitle = md("Distribución de probabilidad de la ubicación regional de las muestras geoquímicas y geológicas en depósitos minerales de 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 = Provincia == "TOTAL")

)

tabla_provincia_gt
Tabla N° 2
Distribución de probabilidad de la ubicación regional de las muestras geoquímicas y geológicas en depósitos minerales de Estados Unidos
Provincia ni hi P
Norte 914 0.3656 36.56
Centro 978 0.3912 39.12
Sur 608 0.2432 24.32
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_finalprovincia$P[1:(nrow(tabla_finalprovincia)-1)])

barplot(

P_global,

main = "Gráfica Nº2: Distribución regional de muestras geoquímicas\ny geológicas en depósitos minerales de Estados Unidos",

cex.main = 0.8,

xlab = "Región",

ylab = "Probabilidad (%)",

col = "blue",

names.arg = tabla_finalprovincia$Provincia[1:(nrow(tabla_finalprovincia)-1)],

cex.names = 0.9,

ylim = c(0, 100),

las = 1

)

# Eliminar fila TOTAL

tabla_sin_total <- tabla_finalprovincia[

tabla_finalprovincia$Provincia != "TOTAL",

]

# Extraer probabilidad de la categoría "Centro"

prob_centro <- tabla_sin_total$P[

tabla_sin_total$Provincia == "Centro"

]

# 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 depósitos\n",

"minerales de Estados Unidos provenga de la\n",

"región Centro?\n\n",

"Probabilidad = ", prob_centro, " (%)",

sep = ""

),

cex = 1.3,

col = "black",

font = 2

)