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"
)
