## R Markdown

title: “Tabla de Frecuencia” author: “Tu nombre” date: “2026” output: html_document —

Tabla de Frecuencia de la Composición de Plástico

# =========================
# CARGAR LIBRERÍAS
# =========================

library(gt)

# =========================
# CARGAR DATOS
# =========================

datos <- read.csv(
  "waterPollution.csv",
  sep = ",",
  stringsAsFactors = FALSE
)

# =========================
# Variable Cuantitativa Continua
# =========================

composition_plastic_percent <- as.numeric(
  datos$composition_plastic_percent
)

composition_plastic_percent <- na.omit(
  composition_plastic_percent
)

# =========================
# Número de intervalos
# =========================

k <- floor(
  1 + 3.3 * log10(length(composition_plastic_percent))
)

# =========================
# Valores básicos
# =========================

min_val <- min(composition_plastic_percent)
max_val <- max(composition_plastic_percent)

R <- max_val - min_val
A <- R / k

# =========================
# Límites de clase
# =========================

Li <- round(
  seq(
    from = min_val,
    to = max_val - A,
    by = A
  ),
  2
)

Ls <- round(
  seq(
    from = min_val + A,
    to = max_val,
    by = A
  ),
  2
)

MC <- round((Li + Ls) / 2, 2)

# =========================
# Frecuencia absoluta
# =========================

ni <- numeric(length(Li))

for(i in 1:length(Li)){
  
  if(i < length(Li)){
    
    ni[i] <- sum(
      composition_plastic_percent >= Li[i] &
      composition_plastic_percent < Ls[i]
    )
    
  } else {
    
    ni[i] <- sum(
      composition_plastic_percent >= Li[i] &
      composition_plastic_percent <= max_val
    )
  }
}

# =========================
# Frecuencia relativa
# =========================

hi <- round((ni / sum(ni)) * 100, 2)

# =========================
# Frecuencias acumuladas
# =========================

Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))

Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)

# =========================
# Crear tabla
# =========================

TDF_Plastic <- data.frame(
  Li,
  Ls,
  MC,
  ni,
  hi,
  Niasc,
  Nidsc,
  Hiasc,
  Hidsc
)

# =========================
# Agregar TOTAL
# =========================

totales <- TDF_Plastic[1, ]

totales[1, ] <- c(
  "TOTAL",
  "",
  "",
  sum(ni),
  100,
  "",
  "",
  "",
  ""
)

TDF_Plastic <- rbind(TDF_Plastic, totales)

# =========================
# Nombres columnas
# =========================

colnames(TDF_Plastic) <- c(
  "Li",
  "Ls",
  "MC",
  "ni",
  "hi(%)",
  "Ni_asc",
  "Ni_desc",
  "Hi_asc(%)",
  "Hi_desc(%)"
)

# =========================
# Tabla final
# =========================

TDF_Plastic %>%
  
  gt() %>%
  
  tab_header(
    
    title = md("*Tabla N°1*"),
    
    subtitle = md(
      "**Distribución de frecuencias de la Composición de Plástico (%)**"
    )
  ) %>%
  
  tab_source_note(
    
    source_note = md("Autor: Grupo 3")
  ) %>%
  
  tab_style(
    
    style = cell_text(weight = "bold"),
    
    locations = cells_body(
      rows = Li == "TOTAL"
    )
  )
Tabla N°1
Distribución de frecuencias de la Composición de Plástico (%)
Li Ls MC ni hi(%) Ni_asc Ni_desc Hi_asc(%) Hi_desc(%)
1.45 2.88 2.16 943 4.74 943 19893 4.74 99.99
2.88 4.31 3.59 0 0 943 18950 4.74 95.25
4.31 5.74 5.03 0 0 943 18950 4.74 95.25
5.74 7.17 6.46 174 0.87 1117 18950 5.61 95.25
7.17 8.6 7.88 82 0.41 1199 18776 6.02 94.38
8.6 10.03 9.31 12802 64.35 14001 18694 70.37 93.97
10.03 11.46 10.75 354 1.78 14355 5892 72.15 29.62
11.46 12.89 12.18 719 3.61 15074 5538 75.76 27.84
12.89 14.32 13.61 806 4.05 15880 4819 79.81 24.23
14.32 15.75 15.04 22 0.11 15902 4013 79.92 20.18
15.75 17.18 16.46 0 0 15902 3991 79.92 20.07
17.18 18.61 17.9 15 0.08 15917 3991 80 20.07
18.61 20.04 19.32 0 0 15917 3976 80 19.99
20.04 21.47 20.75 3957 19.89 19874 3976 99.89 19.99
21.47 22.9 22.18 19 0.1 19893 19 99.99 0.1
TOTAL 19893 100
Autor: Grupo 3