#==============================ENCABEZADO===================================
# TEMA: ED Variables Cualitativas - Cuencas (Basin)
# AUTOR: GRUPO 4
# FECHA: 18-12-2025
#==============================CARGA DE DATOS===================================
library(gt)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos <- read.csv("tablap.csv", header = TRUE, dec = ",", sep = ";")

#==============================TABLA DE DATOS===================================
# VARIABLE: BASIN
cuenca <- datos$Basin
TDFcuenca <- table(cuenca)
Tablacuenca <- as.data.frame(TDFcuenca)

# Nombres de columnas
names(Tablacuenca) <- c("BASIN", "ni") 
Tablacuenca$hi_porcentaje <- (Tablacuenca$ni / sum(Tablacuenca$ni)) * 100

# A??ADIMOS EL NUMERO DE FILA (N)
Tablacuenca <- cbind(N = 1:nrow(Tablacuenca), Tablacuenca)

# A??ADIMOS LA FILA TOTAL
TDFcuencaFinal <- rbind(
  Tablacuenca,
  data.frame(N = NA, BASIN = "TOTAL", ni = sum(Tablacuenca$ni), 
             hi_porcentaje = 100)
)

TDFcuencaFinal$hi_porcentaje <- round(TDFcuencaFinal$hi_porcentaje, 2)
print(TDFcuencaFinal)
##    N     BASIN    ni hi_porcentaje
## 1  1   Permian  3277         26.09
## 2  2 Rotan Ski   655          5.21
## 3  3  San Juan  8629         68.70
## 4 NA     TOTAL 12561        100.00
#==============================TDF PLOT (GT)================================
# Visualizacion profesional con numeracion
tabla_gt_resultado <- gt(TDFcuencaFinal) %>%
  tab_header(
    title = "Distribucion de las cuencas",
  ) %>%
  cols_label(
    N = "Nro.",               
    BASIN = "Basin",  
    ni = "ni", 
    hi_porcentaje = "hi"
  ) %>%
  sub_missing(columns = N, missing_text = "") %>% 
  tab_style(
    style = list(cell_fill(color = "gray90"), cell_text(weight = "bold")),
    locations = cells_body(rows = BASIN == "TOTAL")
  ) %>%
  tab_options(table.width = pct(95))

tabla_gt_resultado
Distribucion de las cuencas
Nro. Basin ni hi
1 Permian 3277 26.09
2 Rotan Ski 655 5.21
3 San Juan 8629 68.70

TOTAL 12561 100.00
#===================DIAGRAMA DE FRECUENCIA ABSOLUTA LOCAL===========================
par(mar = c(10, 4, 4, 2) + 0.1) 
barplot(table(cuenca),
        main = "Distribucion de cuencas",
        xlab = "CUENCA", ylab = "CANTIDAD", col = "grey30",
        las = 2, cex.names = 0.6)

#===================DIAGRAMA DE FRECUENCIA ABSOLUTA GLOBAL===========================
par(mar = c(10, 4, 4, 2) + 0.1) 
barplot(table(cuenca),
        main = "Distribucion de cuencas",
        xlab = "CUENCA", ylab = "CANTIDAD", col = "grey40",
        las = 2, ylim = c(0, sum(Tablacuenca$ni)), cex.names = 0.6)

#====================DIAGRAMA DE FRECUENCIA RELATIVA LOCAL==========================
par(mar = c(10, 4, 4, 2) + 0.1) 
barplot(TDFcuencaFinal$hi_porcentaje[TDFcuencaFinal$BASIN != "TOTAL"],
        main = "Distribucion de cuencas",
        xlab = "CUENCA", ylab = "PORCENTAJE", col = "grey50",
        las = 2, cex.names = 0.6,
        names.arg = TDFcuencaFinal$BASIN[TDFcuencaFinal$BASIN != "TOTAL"])

#====================DIAGRAMA DE FRECUENCIA RELATIVA GLOBAL==========================
par(mar = c(10, 4, 4, 2) + 0.1) 
barplot(TDFcuencaFinal$hi_porcentaje[TDFcuencaFinal$BASIN != "TOTAL"],
        main = "Distribucion de cuencas",
        xlab = "CUENCA", ylab = "PORCENTAJE", col = "grey60",
        las = 2, cex.names = 0.6, ylim = c(0, 100),
        names.arg = TDFcuencaFinal$BASIN[TDFcuencaFinal$BASIN != "TOTAL"])

#================================DIAGRAMA CIRCULAR===========================
par(mar = c(0, 0, 1, 4), xpd = TRUE)
etiqueta <- paste(TDFcuencaFinal$hi_porcentaje[TDFcuencaFinal$BASIN != "TOTAL"], "%")
colores <- c(rev(grey.colors(nrow(Tablacuenca))))

pie(TDFcuencaFinal$hi_porcentaje[TDFcuencaFinal$BASIN != "TOTAL"],
    main = "Distribucion de cuencas",
    radius = 0.65,
    col = colores,
    labels = etiqueta,
    cex = 0.9)

legend("bottomright",
       legend = TDFcuencaFinal$BASIN[TDFcuencaFinal$BASIN != "TOTAL"],
       title = "Cuencas",
       fill = colores,
       cex = 1)

#=======================INDICADORES MODA==================================
# MODA BASIN
moda_cuenca <- names(TDFcuenca)[which.max(TDFcuenca)]
print(paste("Conclusion: La variable Basin tiene como moda:", moda_cuenca))
## [1] "Conclusion: La variable Basin tiene como moda: San Juan"