PASO 2: Análisis de datos

Como siempre, lo primero que debemos hacer es cargar las librerías que contienen las funciones que utilizaremos para trabajar con nuestros datos. En nuestro caso utilizaremos tidyverse que es una librería clásica de R:

library(tidyverse)
## Registered S3 methods overwritten by 'ggplot2':
##   method         from 
##   [.quosures     rlang
##   c.quosures     rlang
##   print.quosures rlang
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.1     ✔ purrr   0.3.2
## ✔ tibble  2.1.3     ✔ dplyr   0.8.1
## ✔ tidyr   0.8.3     ✔ stringr 1.4.0
## ✔ readr   1.3.1     ✔ forcats 0.4.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()

El siguiente paso es cargar los datos sobre calidad del aire del año 2017 que habíamos preparado y guardarlos en una variable que llamaremos también “q_aire2017”. Luego de cargar los datos en nuestra tabla, mostramos las seis primeras filas. Vemos que aparece una columna “X” que no necesitamos y por eso, con la función select la eliminamos para tener la tabla como nosotros queremos:

q_aire2017 <- read.csv("./calidad-del-aire/calidad-del-aire-2017.csv")
head(q_aire2017)
##   X DIA MES ANIO HORA CO_CENTENARIO NO2_CENTENARIO PM10_CENTENARIO
## 1 1   1 Ene 2017    1          0.70             NA              NA
## 2 2   1 Ene 2017    2          0.72             NA              NA
## 3 3   1 Ene 2017    3          0.72             NA              NA
## 4 4   1 Ene 2017    4          0.73             NA              NA
## 5 5   1 Ene 2017    5          0.73             NA              NA
## 6 6   1 Ene 2017    6          0.69             NA              NA
##   CO_CORDOBA NO2_CORDOBA PM10_CORDOBA CO_LA_BOCA NO2_LA_BOCA PM10_LA_BOCA
## 1       0.81          19           19         NA           2           43
## 2       0.79          16           20         NA           2           46
## 3       0.82          23           19         NA           1           46
## 4       0.81          16           20         NA           2           51
## 5       0.73          11           20         NA           2           50
## 6       0.65          11           20         NA           2           49

Si queremos que en nuestros gráficos aparezcan los meses en el orden del calendario debemos convertir la columna MES en un factor ordenado de modo que siempre respete el orden:

q_aire2017 <- mutate(q_aire2017, MES=factor(MES, 
                              levels = c("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"),
                              ordered=TRUE))

Ahora vamos a empezar a ver un poco nuestros datos. Por ejemplo, queremos saber en qué mes del año 2017 hubo mayor concentración de monóxido de carbono en la estación Centenario. La tabla resumen de nuestro dato la vamos a llamar “Tabla_Prom_CO_Cent2017” y los valores promedio los vamos a guardar en una variable llamada “Prom_CO_Cent” y para eso utilizaremos las funciones group_by y summarise, además utilizaremos arrange con el modificador desc para que nos muestre la tabla ordenada por valores descendentes, es decir, primero el mayor valor. Tendremos entonces dos tablas diferentes: una es TablaProm_CO_Cent2017 que es la que está ordenada por valores de mayor a menor, y otra tabla, Tabla_Prom_CO_Cent2017xMes que es la que está ordenada por meses calendario. Esto es importante ya que queremos que en los gráficos de barra aparezcan los meses ordenados según el calendario:

Tabla_Prom_CO_Cent2017xMes <- group_by(q_aire2017, MES)%>%summarise(Prom_CO_Cent = mean(CO_CENTENARIO, na.rm = TRUE))
Tabla_Prom_CO_Cent2017 <- arrange(Tabla_Prom_CO_Cent2017xMes, desc(Prom_CO_Cent))
Tabla_Prom_CO_Cent2017
## # A tibble: 12 x 2
##    MES   Prom_CO_Cent
##    <ord>        <dbl>
##  1 May          0.805
##  2 Jun          0.748
##  3 Ago          0.635
##  4 Abr          0.594
##  5 Mar          0.584
##  6 Jul          0.571
##  7 Ene          0.554
##  8 Oct          0.495
##  9 Sep          0.472
## 10 Nov          0.452
## 11 Dic          0.421
## 12 Feb          0.420

Nuestro primer análisis nos muestra que Mayo fue el mes en promedio con mayor concentración de CO en la estación Centenario.
También podemos representar esto gráficamente mediante barras utilizando la función ggplot con los modificadores geom_col para especificar qué queremos representar en cada eje y ggtitle para colocarle nombre al gráfico:

Tabla_Prom_CO_Cent2017xMes <- na.omit(Tabla_Prom_CO_Cent2017) # "na.moit" omite las filas que tienen NA
ggplot(Tabla_Prom_CO_Cent2017xMes) + 
  geom_col(aes(x = MES, y = Prom_CO_Cent)) +ggtitle("Promedio mensual de CO en estación Centenario en 2017")

Para el contaminante CO, el mes que más contaminación se detectó fue Mayo. Ahora vamos a hacer un cálculo similar, en la estación Centenario, pero para los otros dos contaminantes (NO2 y PM10). Tal como hicimos con el contaminante CO, primero ordenamos la tabla de mayor a menor y luego hacemos el gráfico de barras:

Tabla_Prom_NO2_Cent2017xMes <- group_by(q_aire2017, MES)%>%summarise(Prom_NO2_Cent = mean(NO2_CENTENARIO, na.rm = TRUE))
Tabla_Prom_NO2_Cent2017 <- arrange(Tabla_Prom_NO2_Cent2017xMes, desc(Prom_NO2_Cent))
Tabla_Prom_NO2_Cent2017
## # A tibble: 12 x 2
##    MES   Prom_NO2_Cent
##    <ord>         <dbl>
##  1 Jun            20.1
##  2 Ago            19.2
##  3 May            18.8
##  4 Feb            18.8
##  5 Jul            18.3
##  6 Abr            17.8
##  7 Sep            16.8
##  8 Mar            16.2
##  9 Oct            16.0
## 10 Dic            15.7
## 11 Nov            15.6
## 12 Ene            14.4
ggplot(Tabla_Prom_NO2_Cent2017xMes) + 
  geom_col(aes(x = MES, y = Prom_NO2_Cent)) +ggtitle("Promedio mensual de NO2 en estación Centenario en 2017")

Viendo la tabla y nuestro gráfico, vemos que para el NO2 el mes en el que se registró mayor contaminación fue Junio. Veamos ahora qué sucede con el contaminante PM10:

Tabla_Prom_PM10_Cent2017xMes <- group_by(q_aire2017, MES)%>%summarise(Prom_PM10_Cent = mean(PM10_CENTENARIO, na.rm = TRUE))
Tabla_Prom_PM10_Cent2017 <- arrange(Tabla_Prom_PM10_Cent2017xMes, desc(Prom_PM10_Cent))
Tabla_Prom_PM10_Cent2017
## # A tibble: 12 x 2
##    MES   Prom_PM10_Cent
##    <ord>          <dbl>
##  1 Mar             33.4
##  2 Jun             28.5
##  3 Nov             26.6
##  4 Dic             25.4
##  5 Feb             24.2
##  6 Ene             22.6
##  7 Abr             22.4
##  8 May             22.2
##  9 Jul             21.5
## 10 Oct             21.2
## 11 Sep             19.7
## 12 Ago             19.0
ggplot(Tabla_Prom_PM10_Cent2017) + 
  geom_col(aes(x = MES, y = Prom_PM10_Cent)) +ggtitle("Promedio mensual de PM10 en estación Centenario en 2017")

Observando el gráfico, vemos que para PM10 el mes de mayor contaminación fue Marzo. Repitiendo la operatoria con los demás datasets podremos disponer de los demás valores (PROM_CO, PROM_NO2 y PROM_PM10) para cada una de las tres estaciones de medición (Córdoba, Centenario y La Boca) para los tres años (2017, 2018, 2019). Ya tenemos los de 2017 de la estación Centenario, los demás valores los calcularemos de la misma manera pero en un archivo aparte para no hacer tan tedioso el proceso.

Pasamos entonces a hacer los cálculos restantes para los otras dos estaciones para 2017 y todo lo de 2018 y 2019 de cada uno de los contaminantes en cada una de las estaciones de medición. El archivo se llama “calcular valores restantes” y es un archivo para cada año.