CARGA DE DATOS
library(dplyr)
library(stringr)
library(gt)
datos <- read.csv("D:/provincias_estados_unidos_2500.csv")
ASIGNACION DE VARIABLES
df_provincia <- data.frame(provincia = toupper(trimws(datos$PROVINCIA)))
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_provincia <- c(
"Norte",
"Centro",
"Sur"
)
df_provincia$provincia <- factor(
df_provincia$provincia,
levels = orden_provincia,
ordered = TRUE
)
TABLA DE DISTRIBUCION DE CANTIDAD
TDF_provincia <- df_provincia %>%
count(provincia, name = "ni") %>%
arrange(provincia)
# Cálculo inicial de porcentajes
TDF_provincia <- TDF_provincia %>%
mutate(hi = round(ni / sum(ni) * 100, 0))
# Ajuste matemático para forzar que la suma de 'hi' sea exactamente 100%
diferencia <- 100 - sum(TDF_provincia$hi, na.rm = TRUE)
if (diferencia != 0 & nrow(TDF_provincia) > 0) {
pos_max <- which.max(TDF_provincia$ni)
TDF_provincia$hi[pos_max] <- TDF_provincia$hi[pos_max] + diferencia
}
tabla_provincia <- TDF_provincia %>%
gt() %>%
tab_header(
title = "Tabla N° 1",
subtitle = "Distribución por Región de la Provincia"
) %>%
grand_summary_rows(
columns = c(ni, hi),
fns = list(Total = ~sum(., na.rm = TRUE)),
fmt = list(~fmt_number(., decimals = 0))
)
tabla_provincia
| Tabla N° 1 | |||
| Distribución por Región de la Provincia | |||
| provincia | ni | hi | |
|---|---|---|---|
| Norte | 914 | 37 | |
| Centro | 978 | 39 | |
| Sur | 608 | 24 | |
| Total | — | 2,500 | 100 |
# Agregamos fila TOTAL
tabla_final_provincia <- TDF_provincia %>%
mutate(
provincia = as.character(provincia)
)
tabla_final_provincia <- bind_rows(
tabla_final_provincia,
data.frame(
provincia = "TOTAL",
ni = sum(tabla_final_provincia$ni),
hi = sum(tabla_final_provincia$hi)
)
)
# TABLA ESQUELETO
tabla_provincia_gt <- tabla_final_provincia %>%
gt() %>%
tab_header(
title = md("**Tabla Nº2**"),
subtitle = md("Distribución ordinal por región de la provincia")
) %>%
cols_label(
provincia = "Región",
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 = provincia == "TOTAL"
)
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2")
)
tabla_provincia_gt
| Tabla Nº2 | ||
| Distribución ordinal por región de la provincia | ||
| Región | Frecuencia | Porcentaje (%) |
|---|---|---|
| Norte | 914 | 37 |
| Centro | 978 | 39 |
| Sur | 608 | 24 |
| TOTAL | 2,500 | 100 |
| Autor: Grupo 2 | ||
# Gráfica Nº1: Frecuencia absoluta
barplot(TDF_provincia$ni,
main = "Gráfica Nº1: Frecuencia por Región",
xlab = "Región",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_provincia$provincia,
cex.names = 0.8,
las = 1)
# Gráfica Nº2: Frecuencia absoluta ajustada
barplot(TDF_provincia$ni,
main = "Gráfica Nº2: Frecuencia por Región (Escala Ajustada)",
xlab = "Región",
ylab = "Cantidad (ni)",
col = "steelblue",
names.arg = TDF_provincia$provincia,
cex.names = 0.8,
las = 1,
ylim = c(0, max(TDF_provincia$ni) * 1.2))
# Gráfica Nº3: Frecuencia relativa
barplot(TDF_provincia$hi,
main = "Gráfica Nº3: Porcentaje por Región",
xlab = "Región",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_provincia$provincia,
cex.names = 0.8,
las = 1)
# Gráfica Nº4: Frecuencia relativa escala completa
barplot(TDF_provincia$hi,
main = "Gráfica Nº4: Porcentaje por Región (Escala Completa)",
xlab = "Región",
ylab = "Porcentaje (%)",
col = "steelblue",
names.arg = TDF_provincia$provincia,
cex.names = 0.8,
las = 1,
ylim = c(0, 100))
# Gráfico circular
par(mar = c(4, 4, 4, 8))
colores <- rainbow(length(TDF_provincia$hi))
pie(TDF_provincia$hi,
col = colores,
main = "Distribución por Región de la Provincia",
labels = NA)
legend("right",
legend = paste(TDF_provincia$provincia, TDF_provincia$hi, "%"),
fill = colores,
title = "REGIONES",
bty = "o",
xpd = TRUE,
inset = c(-0.25, 0))
# Moda
moda_provincia <- TDF_provincia[TDF_provincia$ni == max(TDF_provincia$ni), ]
moda_provincia
## provincia ni hi
## 2 Centro 978 39
# Mediana
TDF_provincia <- TDF_provincia %>%
mutate(Ni = cumsum(ni))
N <- sum(TDF_provincia$ni)
mediana_provincia <- TDF_provincia %>%
filter(Ni >= N/2) %>%
slice(1)
mediana_provincia
## provincia ni hi Ni
## 1 Centro 978 39 1892
"La variable condados presenta como valor más frecuente la región Centro. Esto indica una mayor concentración de actividades mineras en los estados centrales de Estados Unidos, incrementando el potencial de exploración y explotación en dicha zona."
## [1] "La variable condados presenta como valor más frecuente la región Centro. Esto indica una mayor concentración de actividades mineras en los estados centrales de Estados Unidos, incrementando el potencial de exploración y explotación en dicha zona."