O impacto da COVID-19 na aviação brasileira em 2020

Introdução

A fim de verificar o impacto da atual pandemia de COVID-19 na aviação brasileira, baixei alguns dos Dados Estatísticos da ANAC para comparar o fluxo de passageiros aéreos entre 2019 e 2020.

Obtenção dos Dados

Embora eu utilize apenas dois anos na análise, criei um código capaz de baixar informações de todos os anos disponíveis no site da ANAC. Basta editar os valores do objeto anos para fazer isso.

base <- "https://www.anac.gov.br/assuntos/dados-e-estatisticas/dados-estatisticos/arquivos/resumo_anual_"

anos <- 2019:2020

for (j in anos){
  download.file(url = paste0(base, j, ".csv"),
                destfile = paste0("dados/resumo_anual_", j, ".csv"))
}

Preparação dos Dados

Após os dados baixados, eles devem ser lidos dentro do R. Como há algumas operações a serem feitas em cada conjunto de dados, eu criei a função preparacao para simplificar esse processo. Essa função lê os arquivos csv e ajusta o nome das suas colunas.

# preparacao dos dados

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.2     ✓ dplyr   1.0.7
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
preparacao <- function(arquivo){
  
  # leitura
  dados <- read.csv(file = arquivo,
                    sep = ";",
                    fileEncoding="latin1",
                    dec = ",")
  
  # nomes das colunas
  dados <- clean_names(dados)
  
  return(dados)
}

resumo_anual_2019 <- preparacao("data/resumo_anual_2019.csv")
# retirar dezembro
resumo_anual_2019 <-
  resumo_anual_2019 %>%
  filter(mes != 12)

resumo_anual_2020 <- preparacao("data/resumo_anual_2020.csv")

dados <- 
  rbind(resumo_anual_2019, resumo_anual_2020) %>%
  mutate(passageiros = passageiros_pagos + passageiros_gratis) %>%
  mutate(ano = as.factor(ano)) %>%
  select(ano, mes, passageiros) %>%
  group_by(ano, mes) %>%
  summarise(passageiros = sum(passageiros, na.rm = TRUE))
## `summarise()` has grouped output by 'ano'. You can override using the `.groups` argument.

Visualização

Com os dados lidos e preparados, é trivial fazer a visualização.

ggplot(dados, aes(x = mes, y = passageiros, colour = ano)) +
  geom_line() +
  labs(x = "Mês", y = "Passageiros", colour = "Ano") +
  scale_x_continuous(breaks = 1:12,
                     labels = c("Jan", "Fev", "Mar", "Abr", "Mai", "Jun",
                                "Jul", "Ago", "Set", "Out", "Nov", "Dez"),
                     minor_breaks = NULL) +
  scale_y_continuous(limits = c(0, 1.2e7), 
                     labels = scales::comma_format()) +
  theme_bw() +
  scale_colour_viridis_d()

Os códigos usados nesse post podem ser encontrados no github (me segue lá).