UNIVERSIDAD CENTRAL DEL ECUADOR, FIGEMPA, Ingeniería Ambiental,
VARIABLE NOMINAL (CIUDAD)
#ESTADISTICA DESCRIPTIVA
#Lorien Arcentales
#20/11/2025
#Carga de paquetes
library(gt)
library(dplyr)
#Carga de datos
datos<-read.csv("city_day.csv", header = TRUE, dec = ".",
sep = ",")
#Creación de tablas
ciudad<-datos$City
#TDF variable ciudad
TDF_ciudad<-data.frame(table(ciudad))
ni <- TDF_ciudad$Freq
hi <- round((ni / sum(ni)) * 100, 2)
ciudad <- TDF_ciudad$ciudad
TDF_ciudad <- data.frame(ciudad, ni, hi)
Summary <- data.frame(ciudad = "TOTAL", ni = sum(ni),hi = 100)
TDF_ciudad <- rbind(TDF_ciudad,Summary)
colnames(TDF_ciudad) <- c("Ciudades", "ni", "hi(%)")
# TABLA CREACIÓN
library(gt)
library(dplyr)
TDF_ciudad %>%
gt() %>%
tab_header(
title = md("*Tabla Nro. 1*"),
subtitle = md("**Distribucion de frecuencia de ciudades,estudio calidad del aire en India entre 2015-2020 **")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2\n Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india")
) %>%
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"
)
| Tabla Nro. 1 |
| **Distribucion de frecuencia de ciudades,estudio calidad del aire en India entre 2015-2020 ** |
| Ciudades |
ni |
hi(%) |
| Ahmedabad |
2009 |
6.80 |
| Aizawl |
113 |
0.38 |
| Amaravati |
951 |
3.22 |
| Amritsar |
1221 |
4.13 |
| Bengaluru |
2009 |
6.80 |
| Bhopal |
289 |
0.98 |
| Brajrajnagar |
938 |
3.18 |
| Chandigarh |
304 |
1.03 |
| Chennai |
2009 |
6.80 |
| Coimbatore |
386 |
1.31 |
| Delhi |
2009 |
6.80 |
| Ernakulam |
162 |
0.55 |
| Gurugram |
1679 |
5.69 |
| Guwahati |
502 |
1.70 |
| Hyderabad |
2006 |
6.79 |
| Jaipur |
1114 |
3.77 |
| Jorapokhar |
1169 |
3.96 |
| Kochi |
162 |
0.55 |
| Kolkata |
814 |
2.76 |
| Lucknow |
2009 |
6.80 |
| Mumbai |
2009 |
6.80 |
| Patna |
1858 |
6.29 |
| Shillong |
310 |
1.05 |
| Talcher |
925 |
3.13 |
| Thiruvananthapuram |
1112 |
3.77 |
| Visakhapatnam |
1462 |
4.95 |
| TOTAL |
29531 |
100.00 |
| Autor: Grupo 2
Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india |
#Creación de agrupacion de la variable ciudad por tamaño según el número de habitantes, por razón de visualización, analisis y exposición del proyecto
datos$Tamaño<-""
summary(datos$Número.de.habitantes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8000 1100000 3900000 8512278 12300000 33800000
for (i in 1:length(datos$Número.de.habitantes)) {
if (datos$Número.de.habitantes[i] > 5000000) {
datos$Tamaño[i] <- "GRANDE"
} else if (datos$Número.de.habitantes[i] < 500000) {
datos$Tamaño[i] <- "PEQUEÑA"
} else {
datos$Tamaño[i] <- "MEDIANA"
}
}
Grupo <- table(datos$Tamaño)
hi_grupo <- prop.table(Grupo) * 100
TablaAgrupada <- data.frame(
Tamaño = names(Grupo),
ni = as.numeric(Grupo),
hi = round(as.numeric(hi_grupo), 2)
)
TotalFila <- data.frame(
Tamaño = "TOTAL",
ni = sum(TablaAgrupada$ni),
hi = 100
)
TablaAgrupada <- rbind(TablaAgrupada, TotalFila)
colnames(TablaAgrupada) <- c("Tamaño ciudad", "ni", "hi(%)")
#TABLA 2
TablaAgrupada %>%
gt() %>%
tab_header(
title = md("*Tabla Nro. 2*"),
subtitle = md("**Distribucion de frecuencia de las ciudades por tamaño según el número de habitantes,estudio calidad del aire en India entre 2015-2020 **")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2\n Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india")
) %>%
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"
)
| Tabla Nro. 2 |
| **Distribucion de frecuencia de las ciudades por tamaño según el número de habitantes,estudio calidad del aire en India entre 2015-2020 ** |
| Tamaño ciudad |
ni |
hi(%) |
| GRANDE |
12865 |
43.56 |
| MEDIANA |
13521 |
45.79 |
| PEQUEÑA |
3145 |
10.65 |
| TOTAL |
29531 |
100.00 |
| Autor: Grupo 2
Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india |
# Gráfica de distribución de frecuencia
#Diagrama de barras local
# Excluir la fila TOTAL
TablaPlot <- TablaAgrupada[TablaAgrupada$`Tamaño ciudad` != "TOTAL", ]
barplot(
TablaPlot$ni,
names.arg = TablaPlot$`Tamaño ciudad`,
main = "Grafica Nro 1: Distribución de las ciudades por tamaño según su número de habitantes,
estudio calidad del aire en India, entre 2015-2020 ",
xlab = "Tamaño ciudades",
ylab = "Cantidad",
col = c("lightgreen"),
ylim = c(0,13000),
las = 2,
cex.axis = 0.7,
cex.names = 0.5,
cex.main = 0.7
)

#Grafica porcentaje
barplot(TablaPlot$`hi(%)`, main = "Gráfica N°2: Distribución porcentual de las ciudades por tamaño
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020 ",
xlab = "Tamaño Ciudades",
ylab = "Porcentaje",
col = "green",
ylim = c(0,50),
las = 2,
cex.names = 0.5,
cex.main = 0.9,
cex.axis = 0.9,
names.arg = TablaPlot$`Tamaño ciudad`)

# Diagrama de barras global
barplot(TablaPlot$ni, main = "Gráfica N°3: Distribución de las ciudades por tamaño
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020
",
xlab = "Tamaño Ciudades",
ylab = "Cantidad",
col = "blue",
ylim = c(0,30000),
las=2,
cex.names = 0.5,
cex.main = 0.9,
cex.axis = 0.8,
names.arg = TablaPlot$`Tamaño ciudad`)

#Siguientes graficas
barplot(TablaPlot$`hi(%)`,
main="Gráfica No. 4:
Distribución de Porcentaje de las ciudades por tamaño
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020 ",
xlab= "Tamaño Ciudades",
ylab="Porcentaje (%)",
names.arg= TablaPlot$`Tamaño ciudad`,
col = "skyblue",
cex.names = 0.7,
cex.main = 0.9,
cex.axis = 0.8,
ylim=c(0,100))

#Diagrama Circular
library(RColorBrewer)
n <- length(TablaPlot)
colores <- brewer.pal(min(n, 12), "Set3")
color <- adjustcolor(colores, alpha.f = 0.9)
etiqueta<-paste(TablaPlot$`hi(%)`,"%")
pie(TablaPlot$`hi(%)`,
labels = etiqueta,
cex.main = 0.9,
radius = 1,
col=color,
main="Gráfica No.5:
Distribución de Porcentaje de las ciudades por tamaño
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020 ")
legend("bottomright",legend=names(Grupo),
title = "Leyenda",
cex = 0.7,
fill=color)
