# PASO 1: LECTURA Y PREPARACI??N
tablap <- read.csv("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio/tablap.csv",
header=TRUE,
sep=";",
dec=".")
# Define los niveles de complejidad (0 al 7) para el orden
Niveles_Complejidad <- c(0, 1, 2, 3, 4, 5, 6, 7)
# Crea la variable factor ordenado
Complejidad_Factor <- factor(
tablap$Complexity.of.the.casing.structure,
levels = Niveles_Complejidad,
ordered = TRUE
)
# =================================================================
# PASO 2: C??LCULO DE FRECUENCIAS (ni y hi porcentual)
# =================================================================
# C??lculo de Frecuencia Absoluta (ni)
ni <- table(Complejidad_Factor)
total_ni <- sum(ni)
# C??lculo de Frecuencia Porcentual (guardada en hi)
hi <- (ni / total_ni) * 100
# Definici??n del total de frecuencia porcentual
total_hi <- 100
# =================================================================
# PASO 3: CREACI??N DE LA TDF SIMPLE CON TOTALES (CON NUMERO DE FILA)
# =================================================================
# 1. Extrae los niveles de complejidad y crea la TDF base
Nivel <- names(ni)
TDF_Complejidad <- data.frame(
Nivel = Nivel,
ni = as.numeric(ni),
hi = as.numeric(hi)
)
# 2. A??ADIR LA COLUMNA DE ??NDICE (Nro)
# La secuencia va desde 1 hasta el n??mero de filas de la TDF
TDF_Complejidad$Nro <- 1:nrow(TDF_Complejidad)
# 3. CREACI??N DE LA FILA DE TOTALES
Fila_Total_Simple <- data.frame(
Nivel = "Total",
ni = total_ni,
hi = total_hi
)
# Agregamos el ??ndice de fila al Total (un n??mero m??s que las filas de datos)
Fila_Total_Simple$Nro <- nrow(TDF_Complejidad) + 1
# 4. Combina la tabla de frecuencias con la fila de totales
TDF_Complejidad_FINAL <- rbind(TDF_Complejidad, Fila_Total_Simple)
# Reordenar columnas para que Nro sea la primera
TDF_Complejidad_FINAL <- TDF_Complejidad_FINAL[, c("Nro", "Nivel", "ni", "hi")]
# Muestra la TDF final con los totales y el Nro de fila
print(TDF_Complejidad_FINAL)
# =================================================================
# PASO 4: APLICAR FORMATO GT A LA TDF SIMPLE (AJUSTADO PARA Nro)
# =================================================================
library(gt)
tabla_Complejidad_Simple <- TDF_Complejidad_FINAL %>%
gt() %>%
# RENOMBRAR COLUMNAS (Incluyendo la columna Nro)
cols_label(
Nro = md("**Nro.**"),
Nivel = md("**Nivel**"),
ni = md("$$n_i$$"),
hi = md("$$h_i$$")
) %>%
# DAR FORMATO NUM??RICO
fmt_number(
columns = hi,
decimals = 5
) %>%
# OCULTAR EL Nro DE FILA EN EL TOTAL (Usando la funci??n moderna sub_missing)
sub_missing(
columns = Nro,
rows = Nivel == "Total",
missing_text = ""
) %>%
# A??ADIR ENCABEZADOS Y SUBT??TULO
tab_header(
title = md("**Tabla Nro. 1**"),
subtitle = md("**Tabla de distribuci??n de Frecuencias simples** de la Complejidad de la Estructura de Revestimiento")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 1")
) %>%
# APLICAR ESTILO DE TEXTO (NEGRITA) A LA FILA TOTAL
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = Nivel == "Total"
)
) %>%
# APLICAR ESTILOS GENERALES (BORDES, ETC.)
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
)
tabla_Complejidad_Simple
Tabla Nro. 1
Tabla de distribuci??n de Frecuencias simples de la Complejidad de la Estructura de Revestimiento
Nro.
Nivel
ni​
hi​
1
0
2476
19.71181
2
1
33
0.26272
3
2
5383
42.85487
4
3
4138
32.94324
5
4
503
4.00446
6
5
25
0.19903
7
6
2
0.01592
8
7
1
0.00796
9
Total
12561
100.00000
Autor: Grupo 1
#------------------------------------------------------------
# =================================================================
# GR??FICO 1: DIAGRAMA DE BARRAS LOCAL (ni)
# =================================================================
# Usamos la paleta de grises que definimos anteriormente
Colores_Gris <- gray.colors(n = nrow(TDF_Complejidad), start = 0.3, end = 0.9)
barplot(
TDF_Complejidad$ni,
main = "Gr??fica 1: Diagrama de Barras Local de Frecuencia Absoluta (ni)",
xlab = "Nivel de Complejidad",
ylab = "Frecuencia Absoluta (ni)",
names.arg = TDF_Complejidad$Nivel,
las = 1,
col = Colores_Gris
)
#---------------------------------------------------------------
# =================================================================
# GR??FICO 2: DIAGRAMA DE BARRAS GLOBAL (ni)
# =================================================================
barplot(
TDF_Complejidad$ni,
main = "Gr??fica 2: Diagrama de Barras Global de Frecuencia Absoluta (ni)",
xlab = "Nivel de Complejidad",
ylab = "Frecuencia Absoluta (ni)",
names.arg = TDF_Complejidad$Nivel,
las = 1,
col = Colores_Gris,
# El par??metro 'ylim' fuerza el l??mite superior del eje Y al total de la muestra.
ylim = c(0, total_ni)
)
#----------------------------------------------------------------------
# =================================================================
# GR??FICO 3: DIAGRAMA DE BARRAS LOCAL (hi)
# =================================================================
barplot(
TDF_Complejidad$hi,
main = "Gr??fica 3: Diagrama de Barras Local de Frecuencia Porcentual (hi)",
xlab = "Nivel de Complejidad",
ylab = "Frecuencia Porcentual (%)",
names.arg = TDF_Complejidad$Nivel,
las = 1,
col = Colores_Gris
)
#----------------------------------------------------------------
# =================================================================
# GR??FICO 4: DIAGRAMA DE BARRAS GLOBAL (hi)
# =================================================================
barplot(
TDF_Complejidad$hi,
main = "Gr??fica 4: Diagrama de Barras Global de Frecuencia Porcentual (hi)",
xlab = "Nivel de Complejidad",
ylab = "Frecuencia Porcentual (%)",
names.arg = TDF_Complejidad$Nivel,
las = 1,
col = Colores_Gris,
# El par??metro 'ylim' fuerza el l??mite superior del eje Y a 100%.
ylim = c(0, 100)
)
#------------------------------------------------------------------
# =================================================================
# GR??FICA 6: DIAGRAMA CIRCULAR (hi) - ESCALA DE GRISES
# =================================================================
# 1. Crear una paleta de escala de grises
# Usamos gray.colors para generar un tono distinto de gris para cada nivel
colores_grises <- gray.colors(
n = length(TDF_Complejidad$hi),
start = 0.8, # Gris claro
end = 0.2 # Gris oscuro
)
# 2. Generar etiquetas con porcentaje
# Usamos TDF_Complejidad$hi (la frecuencia porcentual) y redondeamos a 2 decimales
etiquetas <- paste(round(TDF_Complejidad$hi, 2), "%", sep="")
# 3. Dibujar el gr??fico circular (con radius = 1.0 para maximizar el tama??o)
pie(TDF_Complejidad$hi,
radius = 1.0, # <--- ??Aumentado el tama??o del diagrama!
col = blues9,
main = "Gr??fica 6: Distribuci??n Porcentual de la Complejidad de la Estructura de Revestimiento (en Porcentaje)",
labels = etiquetas,
cex.main = 1.2 # Aumentar el tama??o del t??tulo principal si es necesario
)
# 4. Leyenda
legend("bottomright",
legend = paste("Nivel", TDF_Complejidad$Nivel),
cex = 0.8,
fill = colores_grises, # Usamos la paleta de grises
title = "Nivel")