UNIVERSIDAD CENTRAL DEL ECUADOR

PROYECTO:ESTUDIO ESTADÍSTICO DE LA CONTAMINACIÓN DEL SUELO Y SU IMPACTO EN LA SALUD

FECHA: 22/11/2025

# Extraemos los datos 
df <- read.csv("soil_pollution_diseases.csv", sep = ";", stringsAsFactors = FALSE)
# 1. Cargar dataset CSV
df <- read.csv("soil_pollution_diseases.csv", sep = ";", stringsAsFactors = FALSE)

# 2. Convertir la columna a fecha (formato día/mes/año)
df$Date_Reported <- as.Date(df$Date_Reported, format = "%d/%m/%Y")

# 3. Crear columnas separadas de día, mes y año
df$Day   <- as.integer(format(df$Date_Reported, "%d"))
df$Month <- as.integer(format(df$Date_Reported, "%m"))
df$Year  <- as.integer(format(df$Date_Reported, "%Y"))
# Extraemos la variable Discreta 
Año<-df$Year
Año<-na.omit(df$Year)
# Tabla de Distribución de Frecuencias
TDF.Año<-table(Año)
# Elementos para la tabla de distribución de Frecuencia

Tabla_Año<-as.data.frame(TDF.Año) 

hi<-(Tabla_Año$Freq/sum(Tabla_Año$Freq))*100
ni<-Tabla_Año$Freq

Tabla_Año<-data.frame(Tabla_Año,hi)

Niasc<-cumsum(ni)
Hiasc<-cumsum(hi)
Nidsc<-rev(cumsum(rev(ni)))
Hidsc<-rev(cumsum(rev(hi)))

Tabla_año_final<-data.frame(Tabla_Año$Año,
                            Tabla_Año$Freq,
                            Tabla_Año$hi,
                            Niasc,
                            round(Hiasc,2),
                            Nidsc,
                            round(Hidsc,2))

colnames(Tabla_año_final)<-c("Año","ni","hi (%)",
                             "Ni_asc","Hi_asc(%)",
                             "Ni_dsc","Hi_dsc(%)")

# Totales
Tabla_año_final$Año <- as.character(Tabla_año_final$Año)
totales <- c(Año="Total",ni= sum(ni),
             hi= sum(hi),
             Niasc="-",
             Nidsc="-",
             Hiasc= "-",
             Hidsc="-")

TDF_años_total<-rbind(Tabla_año_final,totales)
TDF_años_total
#Formato tabla
library(gt)

tabla_años_gt <- TDF_años_total %>% 
  gt() %>% 
  tab_header(
    title = md("*Tabla N° 13*"),
    subtitle = md("**Tabla de distribución de frecuencias simples y acumuladas de los años del estudio**")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  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"
  ) %>% 
  # poner en negrita la fila "Total"
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Año == "Total"
    )
  )

tabla_años_gt
Tabla N° 13
Tabla de distribución de frecuencias simples y acumuladas de los años del estudio
Año ni hi (%) Ni_asc Hi_asc(%) Ni_dsc Hi_dsc(%)
2023 1116 37.2 1116 37.2 3000 100
2024 1497 49.9 2613 87.1 1884 62.8
2025 387 12.9 3000 100 387 12.9
Total 3000 100 - - - -
Autor: Grupo 3
# Extraemos la variable Discreta 
Mes <- df$Month
Mes <- na.omit(Mes)

#numérico
Mes <- as.numeric(Mes)

#Crear intervalos trimestrales
breaks <- c(1, 4, 7, 10, 13)
labels <- c("1-3", "4-6", "7-9", "10-12")

# Clasificar los meses en intervalos
Mes <- cut(Mes, breaks = breaks, include.lowest = TRUE, labels = labels)
# Tabla de Distribución de Frecuencias
TDF.Mes<-table(Mes)
# Elementos para la tabla de distribución de Frecuencia

Tabla_Mes<-as.data.frame(TDF.Mes) 

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

Tabla_Mes<-data.frame(Tabla_Mes,hi)

Niasc<-cumsum(ni)
Hiasc<-cumsum(hi)
Nidsc<-rev(cumsum(rev(ni)))
Hidsc<-rev(cumsum(rev(hi)))

Tabla_mes_final<-data.frame(Tabla_Mes$Mes,
                            Tabla_Mes$Freq,
                            Tabla_Mes$hi,
                            Niasc,
                            round(Hiasc,2),
                            Nidsc,
                            round(Hidsc,2))

colnames(Tabla_mes_final)<-c("Mes","ni","hi (%)",
                             "Ni_asc","Hi_asc(%)",
                             "Ni_dsc","Hi_dsc(%)")

# Totales
Tabla_mes_final$Mes <- as.character(Tabla_mes_final$Mes)
totales <- c(Mes="Total",ni= sum(ni),
             hi= sum(hi),
             Niasc="-",
             Nidsc="-",
             Hiasc= "-",
             Hidsc="-")

TDF_meses_total<-rbind(Tabla_mes_final,totales)
TDF_meses_total
library(DT)
datatable(TDF_meses_total)
#Formato tabla
library(gt)

tabla_meses_gt <- TDF_meses_total %>% 
  gt() %>% 
  tab_header(
    title = md("*Tabla N° 14*"),
    subtitle = md("**Tabla de distribución de frecuencias simples y acumuladas de los meses del estudio**")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  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"
  ) %>% 
  # poner en negrita la fila "Total"
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Mes == "Total"
    )
  )

tabla_meses_gt
Tabla N° 14
Tabla de distribución de frecuencias simples y acumuladas de los meses del estudio
Mes ni hi (%) Ni_asc Hi_asc(%) Ni_dsc Hi_dsc(%)
1-3 996 33.2 996 33.2 3000 100
4-6 771 25.7 1767 58.9 2004 66.8
7-9 714 23.8 2481 82.7 1233 41.1
10-12 519 17.3 3000 100 519 17.3
Total 3000 100 - - - -
Autor: Grupo 3
# Extraemos la variable Discreta 
Dia <- df$Day
Dia <- na.omit(Dia)

#numérico
Dia <- as.numeric(Dia)

# Crear intervalos
max_day <- max(Dia)

breaks <- c(seq(1, max_day - 4, by = 5), max_day + 1)

labels <- paste(
  head(breaks, -1),
  tail(breaks, -1) - 1,
  sep = "-"
)

# Clasificar los días en intervalos
Dia <- cut(Dia, breaks = breaks, include.lowest = TRUE, labels = labels)

# Tabla de Distribución de Frecuencias
TDF.Dia <- table(Dia)

# Elementos para la tabla de distribución de Frecuencia
Tabla_Dia <- as.data.frame(TDF.Dia) 

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

Tabla_Dia <- data.frame(Tabla_Dia, hi)

Niasc <- cumsum(ni)
Hiasc <- cumsum(hi)
Nidsc <- rev(cumsum(rev(ni)))
Hidsc <- rev(cumsum(rev(hi)))

Tabla_dia_final <- data.frame(
  Tabla_Dia$Dia,
  Tabla_Dia$Freq,
  Tabla_Dia$hi,
  Niasc,
  round(Hiasc, 2),
  Nidsc,
  round(Hidsc, 2)
)

colnames(Tabla_dia_final) <- c(
  "Dia", "ni", "hi (%)",
  "Ni_asc", "Hi_asc(%)",
  "Ni_dsc", "Hi_dsc(%)"
)

# Totales
Tabla_dia_final$Dia <- as.character(Tabla_dia_final$Dia)
totales <- c(
  Dia = "Total", ni = sum(ni),
  hi = sum(hi),
  Niasc = "-", Nidsc = "-",
  Hiasc = "-", Hidsc = "-"
)

TDF_dias_total <- rbind(Tabla_dia_final, totales)
TDF_dias_total
library(DT)
datatable(TDF_dias_total)
#Formato tabla
library(gt)

tabla_dias_gt <- TDF_dias_total %>% 
  gt() %>% 
  tab_header(
    title = md("*Tabla N° 15*"),
    subtitle = md("**Tabla de distribución de frecuencias simples y acumuladas de los días del estudio**")
  ) %>% 
  tab_source_note(
    source_note = md("Autor: Grupo 3")
  ) %>% 
  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"
  ) %>% 
  # poner en negrita la fila "Total"
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = Dia == "Total"
    )
  )

tabla_dias_gt
Tabla N° 15
Tabla de distribución de frecuencias simples y acumuladas de los días del estudio
Dia ni hi (%) Ni_asc Hi_asc(%) Ni_dsc Hi_dsc(%)
1-5 594 19.8 594 19.8 3000 100
6-10 469 15.63 1063 35.43 2406 80.2
11-15 505 16.83 1568 52.26 1937 64.57
16-20 477 15.9 2045 68.16 1432 47.74
21-25 515 17.17 2560 85.33 955 31.84
26-31 440 14.67 3000 100 440 14.67
Total 3000 100 - - - -
Autor: Grupo 3