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)