setwd("C:/Users/LENOVO/OneDrive/Escritorio/ESTADISTICA")
datos <- read.csv("china_water_pollution_data.csv")

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## 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
library(knitr)
## Warning: package 'knitr' was built under R version 4.5.2
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.5.2
## 
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(stringr)
## Warning: package 'stringr' was built under R version 4.5.2
#Extraer ciudad automáticamente 
datos <- datos %>%
  mutate(
    Ciudad = str_extract(Monitoring_Station, "^[A-Za-z]+")
  )

#Crear variable REGION según ciudad 
datos <- datos %>%
  mutate(
    Region = case_when(
      Ciudad %in% c("Beijing", "Jinan", "Qingdao") ~ "Norte",
      Ciudad %in% c("Guangzhou", "Shenzhen", "Dali", "Kunming") ~ "Sur",
      Ciudad %in% c("Wuhan", "Zhengzhou", "Luoyang", "Yichang", "Mianyang") ~ "Centro",
      Ciudad %in% c("Shanghai", "Suzhou", "Hangzhou", "Ningbo", "Nanjing") ~ "Este",
      Ciudad %in% c("Chengdu") ~ "Oeste",
      TRUE ~ "Otra"
    )
  )

#Tabla de frecuencias por región
TDF_Region <- datos %>%
  count(Region, name = "ni") %>%
  mutate(
    hi = round((ni / sum(ni)) * 100, 2)  # redondear a 2 decimales
  )

# Enumeración
TDF_Region$N <- 1:nrow(TDF_Region)
TDF_Region <- TDF_Region[, c("N", "Region", "ni", "hi")]

#Fila de sumatoria
Sumatoria <- data.frame(
  N = "",
  Region = "Sumatoria",
  ni = sum(TDF_Region$ni),
  hi = sum(TDF_Region$hi)  # suma de los porcentajes redondeados
)

TDF_Region_suma <- rbind(TDF_Region, Sumatoria)

# Tabla final
kable(
  TDF_Region_suma,
  align = "c",
  caption = "Tabla Nº 4: Distribución de Frecuencias por Región de Monitoreo 
  del 
  Agua en China"
) |>
  kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover", "condensed"),
    position = "center"
  )
Tabla Nº 4: Distribución de Frecuencias por Región de Monitoreo del Agua en China
N Region ni hi
1 Centro 730 24.33
2 Este 909 30.30
3 Norte 599 19.97
4 Oeste 165 5.50
5 Sur 597 19.90
Sumatoria 3000 100.00
# Crear vector de frecuencias
ni <- TDF_Region$ni

#Gráficas

# Gráfica de barras local
barplot(
  ni,
  main = "Gráfica N°1: Distribución por Región del Monitoreo de la 
  Contaminación del Agua en China",
  xlab = "Región",
  ylab = "Cantidad",
  col = "skyblue",
  ylim = c(0, 1000),
  names.arg = TDF_Region$Region,
  las = 2
)

# Crear vector de frecuencias relativas
hi <- TDF_Region$hi

# Gráfica de barras porcentual local
barplot(
  hi,
  main = "Gráfica N°2: Distribución porcentual por región del monitoreo de la 
  contaminación del agua en China",
  xlab = "Región",
  ylab = "Porcentaje",
  col = "green",
  ylim = c(0, 30),
  names.arg = TDF_Region$Region,
  las = 2)

# Diagrama de barras global
barplot(
  ni,
  main = "Gráfica N°3: Distribución por Región del Monitoreo de la 
  Contaminación del Agua en China",
  xlab = "Fuentes de Agua",
  ylab = "Cantidad",
  col = "pink",
  ylim = c(0, 3000),
  names.arg = TDF_Region$Region,
  las = 2)

# Gráfica de barras porcentual global
barplot(
  hi,
  main = "Gráfica N°2: Distribución porcentual por región del monitoreo de la 
  contaminación del agua en China",
  xlab = "Región",
  ylab = "Porcentaje",
  col = "green",
  ylim = c(0, 100),
  names.arg = TDF_Region$Region,
  las = 2)

# Colores para 5 regiones
colores <- rev(heat.colors(length(hi)))

# Diagrama circular
pie(
  hi,
  main = "Gráfica N°5: Distribución por región del monitoreo de la contaminación 
  del agua en China según el porcentaje",
  radius = 1,
  labels = paste0(hi, "%"),
  col = colores,
  cex = 1,
  cex.main = 1
)

# Leyenda
legend(
  "bottomright",
  legend = TDF_Region$Region,
  fill = colores,
  cex = 0.9,
  title = "Regiones"
)