#=================================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"