#=================================ENCABEZADO====================================
# TEMA: ED Variables Cualitativas - Complejidad de Revestimiento
# 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: COMPLEJIDAD DE LA ESTRUCTURA DE REVESTIMIENTO
g_complejidad <- datos$Complexity.of.the.casing.structure

#ORDENAMOS LA TABLA
niveles_ordenados <- as.character(0:7)
g_complejidad <- factor(g_complejidad, levels = niveles_ordenados, ordered = TRUE)

TDF_base <- table(g_complejidad)
Tablacomplejidad <- as.data.frame(TDF_base)

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

# 1. ANIADIMOS EL NUMERO DE FILA (N) PARA CADA NIVEL
Tablacomplejidad <- cbind(N = 1:nrow(Tablacomplejidad), Tablacomplejidad)

# 2. ANIADIMOS LA FILA TOTAL
TDFcomplejidadFinal <- rbind(
  Tablacomplejidad, 
  data.frame(N = NA, COMPLEJIDAD_REVESTIMIENTO = "TOTAL", 
             ni = sum(Tablacomplejidad$ni), hi_porcentaje = 100)
)

TDFcomplejidadFinal$hi_porcentaje <- round(TDFcomplejidadFinal$hi_porcentaje, 2)
print(TDFcomplejidadFinal)
##    N COMPLEJIDAD_REVESTIMIENTO    ni hi_porcentaje
## 1  1                         0  2476         19.71
## 2  2                         1    33          0.26
## 3  3                         2  5383         42.85
## 4  4                         3  4138         32.94
## 5  5                         4   503          4.00
## 6  6                         5    25          0.20
## 7  7                         6     2          0.02
## 8  8                         7     1          0.01
## 9 NA                     TOTAL 12561        100.00
#==============================TABLA GT (REPORTE)================================
# Visualizacion profesional con la numeracion N solicitada
tabla_gt_resultado <- gt(TDFcomplejidadFinal) %>%
  tab_header(
    title = "Distribucion de Complejidad de la estructura de Revestimiento",
  ) %>%
  cols_label(
    N = "N",               
    COMPLEJIDAD_REVESTIMIENTO = "Nivel de Complejidad",  
    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 = COMPLEJIDAD_REVESTIMIENTO == "TOTAL")
  ) %>%
  tab_options(table.width = pct(95))
tabla_gt_resultado
Distribucion de Complejidad de la estructura de Revestimiento
N Nivel de Complejidad ni hi
1 0 2476 19.71
2 1 33 0.26
3 2 5383 42.85
4 3 4138 32.94
5 4 503 4.00
6 5 25 0.20
7 6 2 0.02
8 7 1 0.01

TOTAL 12561 100.00
#=============================GRAFICOS (R BASE)==================================
# Ajuste de margenes
par(mar = c(5, 4, 4, 2) + 0.1)

# Grafico de Frecuencia Absoluta Local
barplot(TDF_base,
        main = "Distribucion de Complejidad de la estructura de Revestimiento",
        xlab = "Nivel de Complejidad", ylab = "CANTIDAD", col = "grey30",
        las = 1, cex.names = 0.8)

# Grafico de frecuencia Absoluta Global
barplot(TDF_base,
        main = "Distribucion de Complejidad de la estructura de Revestimiento",
        xlab = "Nivel de Complejidad", ylab = "CANTIDAD", col = "grey40",
        las = 1, ylim = c(0, sum(Tablacomplejidad$ni)), cex.names = 0.8)

# Grafico de frecuencia Relativa Local
barplot(Tablacomplejidad$hi_porcentaje,
        main = "Distribucion de Complejidad de la estructura de Revestimiento",
        xlab = "Nivel de Complejidad", ylab = "PORCENTAJE", col = "grey50",
        las = 1, cex.names = 0.8, names.arg = Tablacomplejidad$COMPLEJIDAD_REVESTIMIENTO)

# Grafico de frecuencia Relativa Global
barplot(Tablacomplejidad$hi_porcentaje,
        main = "Distribucion de Complejidad de la estructura de Revestimiento",
        xlab = "Nivel de Complejidad", ylab = "PORCENTAJE", col = "grey60",
        las = 1, cex.names = 0.8, ylim = c(0, 100), names.arg = Tablacomplejidad$COMPLEJIDAD_REVESTIMIENTO)

# Grafica Circular

par(mar = c(2, 2, 3, 10), xpd = TRUE)

# 1. Definir los datos a graficar
datos_complejidad <- TDFcomplejidadFinal$hi_porcentaje[TDFcomplejidadFinal$COMPLEJIDAD_REVESTIMIENTO != "TOTAL"]
etiquetas_nombres <- TDFcomplejidadFinal$COMPLEJIDAD_REVESTIMIENTO[TDFcomplejidadFinal$COMPLEJIDAD_REVESTIMIENTO != "TOTAL"]

# 2. Configurar la escala de colores

n_niveles <- length(datos_complejidad)
colores_complejidad <- heat.colors(n_niveles)

# 3. Preparar etiquetas con porcentaje redondeado
etiqueta_complejidad <- paste(round(datos_complejidad, 2), "%")

# 4. Crear el gr??fico circular
pie(datos_complejidad,
    main = "Distribucion de Complejidad de la estructura de Revestimiento",
    radius = 0.8,
    col = colores_complejidad,
    labels = etiqueta_complejidad,
    cex = 0.7)

# 5. Dibujar la leyenda fuera del ??rea del gr??fico para que no se corte
legend("topright", 
       inset = c(-0.35, 0.1), 
       legend = etiquetas_nombres,
       title = "Niveles",
       fill = colores_complejidad,
       cex = 0.6,
       bty = "n")

par(xpd = FALSE)

#=======================INDICADORES ESTADISTICOS================================
# MODA
frecuencia_max <- max(TDF_base)
moda_complejidad <- names(TDF_base)[TDF_base == frecuencia_max]
print(paste("MODA(S):", paste(moda_complejidad, collapse = ", ")))
## [1] "MODA(S): 2"
# MEDIANA
g_complejidadORD <- sort(g_complejidad)
posMe <- (length(g_complejidad) + 1) / 2
mediana_val <- g_complejidadORD[posMe]
print(paste("MEDIANA:", mediana_val))
## [1] "MEDIANA: 2"