#Carga de Librerias 
library(kableExtra)
library(knitr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
## 
##     group_rows
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(magrittr)
library(magrittr)
#Carga de datos
getwd()
## [1] "/cloud/project"
setwd("/cloud/project")
datos<- read.csv("china_water_pollution_data.csv",header = TRUE, sep = ",", dec = ".")
# Extracción de variable Observación
Observaciones <- datos$Remarks
#Limpiar la variable Observaciones
Observaciones <- datos$Remarks
Observaciones[Observaciones == ""] <- NA
Observaciones <- na.omit(Observaciones)
# Tabla de distribución de frecuencia
TDF_observaciones <- data.frame(table(Observaciones))
ni <- TDF_observaciones$Freq
hi <- round((ni / sum(ni)) * 100, 2)
Observaciones <- TDF_observaciones$Observaciones
TDF_observaciones <- data.frame(Observaciones, ni, hi)
TDF_observaciones$Observaciones <- as.character(TDF_observaciones$Observaciones)
TDF_observaciones$Observaciones[TDF_observaciones$Observaciones == ""] <- "-"
Sumatoria <- data.frame(Observaciones = "TOTAL", ni = sum(ni), hi = sum(hi))
TDF_observaciones_suma <- rbind(TDF_observaciones, Sumatoria)
colnames(TDF_observaciones_suma) <- c("Observaciones", "ni", "hi(%)")
colnames(TDF_observaciones) <- c("Observaciones", "ni", "hi (%)")
# Tabla
kable(TDF_observaciones_suma, align = 'c', 
      caption = "Tabla N°4: Tabla de Distribuciónn de Frecuencias de las 
 Observaciones de estudio de contaminación del agua en China en el año 2023") %>%
  kable_styling(full_width = FALSE, position = "center", 
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla N°4: Tabla de Distribuciónn de Frecuencias de las Observaciones de estudio de contaminación del agua en China en el año 2023
Observaciones ni hi(%)
High pollution spike detected 780 34.70
Monitoring recommended 745 33.14
Requires attention 723 32.16
TOTAL 2248 100.00
# Diagrama de barras local
barplot(ni, main = "Gráfica N°1: Distribución de frecuencias de las 
  Observaciones de estudio de contaminación del agua en China en el año 2023",
        xlab = "Observaciones",
        ylab = "Cantidad",
        col = "skyblue",
        ylim = c(0,700),
        las = 1,
        cex.names = 0.6,
        names.arg = TDF_observaciones$Observaciones)

barplot(hi, main = "Gráfica N°2: Distribución porcentual de las Observaciones
de estudio de la contaminación del agua en China en el año 2023",
        xlab = "Observaciones",
        ylab = "Porcentaje",
        col = "green",
        ylim = c(0,30),
        las = 1,
        cex.names = 0.6,
        names.arg = TDF_observaciones$Observaciones)

# Diagrama de barras global
barplot(ni, main = "Gráfica N°3: Distribución de frecuencias de las
Observaciones de estudio de la contaminación del agua 
en China en el año 2023",
        xlab = "Observaciones",
        ylab = "Cantidad",
        col = "pink",
        ylim = c(0,3000),
        las=1,
        cex.names = 0.6,
        names.arg = TDF_observaciones$Observaciones)

barplot(hi, main = "Gráfica N°4: Distribución de frecuencias porcentual de 
las Observaciones de estudio de la contaminacion del agua
           en China en el año 2023",
        xlab = "Obsevaciones",
        ylab = "Porcentaje (%)",
        col = "skyblue",
        ylim = c(0,100),
        las = 1,
        cex.names = 0.6,
        names.arg = TDF_observaciones$Observaciones)

labels_info <- paste(TDF_observaciones$`hi (%)`, "%")
pie(hi,
    main = "Gráfica N°5 Distribución porcentual de las Observaciones de estudio
      de la contaminación del agua en China en el año 2023",
    radius = 1.1,
    labels = labels_info,
    col = rev(heat.colors(10)),
    cex = 0.8,
    cex.main = 1)
legend("topright",
       legend = TDF_observaciones$Observaciones,
       fill = colores <- c(rev(heat.colors(10))),
       cex = 0.6,
       title = "Leyenda")

#Indicadores
# Cálculo de la Moda
frecuencias <- table(Observaciones)
moda <- names(frecuencias)[frecuencias == max(frecuencias)]

# Mostrar la moda
moda
## [1] "High pollution spike detected" "Monitoring recommended"       
## [3] "Requires attention"