This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
Na segunda aula vimos como é possível alimentar o R com dados do SIDRA-IBGE. Primeiro, selecionamos a tabela que desejamos, depois escolhemos o leiaute e a variáveis que nos interessam e a salvamos como arquivo CSV.BR.
Na aula de hoje veremos como é possível pegar a tabela desejada diretamente do SIDRA, recorrendo a um pacote que faz interface diretamente com o API da daquela plataforma do IBGE.
Nesse exercício usaremos alguns pacotes que precisam ser instalados com a função install.packages e carregados, com a função library. Os pacotes são: tidyverse (uma importante suíte para data science); ggplot2 (que vai nos permitir fazer gráficos bem legais); sidrar (que vai fazer o web scraping do Sidra); scales (um pacote que vai ajudar a separar datas no gráfico). Vejam o exemplo de instalação e carregamento do pacote scales:
install.packages("scales")
#### carregando os outros previamente instalados.
library(scales)
library(sidrar)
library(ggplot2)
Atenção: vocês devem repetir o procedimento acima, install.packages e library para os pacotes que listei: tidyverse, ggplot2, sidrar. Como eu já tinha intalados no meu PC os programas, apenas os carreguei.
É bem prático usar o sidrar. Sua única função é o get_sidra. Primeiro procuramos no Sidra uma tabela que nos interessa. Neste exercício, vamos usar a tabela 6784, que apresenta valores para o PIB. Ainda no Sidra, escolhemos as variáveis e o período que nos interessam. No caso, queremos PIB - variação em volume (%), como variável e todos os anos disponiveis. Essa tabela só apresenta valores para o Brasil.
Vamos agora capturar o parâmetro do API Sidra da tabela para a função get_sidra. Isso é feito clicando no botão Links de Compartilhar. O parâmetro da API desejada é a primeira opção na janela que se abre.
Devemos copiar, então, do “/t” até o fim da linha. Colamos este trecho no comando abaixo:
PIBvolume <- get_sidra(api='/t/6784/n1/all/v/9810/p/all/d/v9810%201')
class(PIBvolume)
## [1] "data.frame"
Podemos ver a tabela criada clicando no objeto (que é um data-frame) no Environment do RStudio. Você vai ver que há muita informação na tabela (no data-frame) que não nos interessa.
Agora vamos criar um sequência de datas para montar um objeto (a sequência de datas mais o PIB) que facilitará a visualização do gráfico que faremos.
tempo = seq(as.Date('1996-01-31'), as.Date('2017-01-31'), by='year')
No comando acima, a sequência é criada usando a função as.Date. Repare os argumentos que usamos. A data inicial e a final. Mas note que estamos trabalhando com dados anuais.
Vamos montar nosso novo objeto (um novo data-frame, menos confuso que o primeiro) da seguinte maneira:
txPIBvolume <- data.frame(Ano=tempo, Volume=PIBvolume$Valor)
txPIBvolume
## Ano Volume
## 1 1996-01-31 2.2
## 2 1997-01-31 3.4
## 3 1998-01-31 0.3
## 4 1999-01-31 0.5
## 5 2000-01-31 4.4
## 6 2001-01-31 1.4
## 7 2002-01-31 3.1
## 8 2003-01-31 1.1
## 9 2004-01-31 5.8
## 10 2005-01-31 3.2
## 11 2006-01-31 4.0
## 12 2007-01-31 6.1
## 13 2008-01-31 5.1
## 14 2009-01-31 -0.1
## 15 2010-01-31 7.5
## 16 2011-01-31 4.0
## 17 2012-01-31 1.9
## 18 2013-01-31 3.0
## 19 2014-01-31 0.5
## 20 2015-01-31 -3.5
## 21 2016-01-31 -3.3
## 22 2017-01-31 1.3
Reparem nos argumentos da função data.frame. Uma coluna de anos mais o valores do PIB de nosso primeiro data-frame, aquele que foi extraído do Sidra pelo web scraping. Daquela primeira tabela, só nos interessa a coluna com o nome de “Valor”.
Agora vamos cria nosso gráfico usando o rico pacote ggplot2.
ggplot(txPIBvolume, aes(x=Ano, y=Volume))+
geom_line(size=.8, colour='red')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=90, hjust=1))+
geom_point(size=9, shape=21, colour="blue", fill="white")+
geom_text(aes(label=round(Volume,1)), size=3,
hjust=0.5, vjust=0.5, colour="darkgreen")+
xlab('Anos')+ylab('%')+
labs(title='Taxa de Crescimento',
subtitle='Variação em volume do PIB',
caption='Fonte: Turma de Macro II.')
Como vocês podem ver, são muitos argumentos para serem explicados. Vamos resumí-los, afinal, só com a prática do dia a dia vocês vão conseguir trabalhar bem esses gráficos.
O primeiro argumento é no nome do que criamos por último.
Através da função aes especificamos o que queremos ilustrar graficamente.
Em seguida, acrescentamos outras definições gráficas (+).
A função geom_line nos diz o tipo de linha que queremos.
A função scale_x_date nos ajuda a separar as informações por ano e nomear os anos de nosso gráfico (%Y).
Usamos a função theme para observar que o eixo do x está na forma de texto (no caso os anos) e que esses anos devem ser dispostos verticalmente (angle=90); além disso, essa função define a grossura dos anos (hjust=1).
Por meio da função geom_point nós destacamos os números no gráfico. Queremos bolas (shape=21) com um certo tamanho (9). A cor da linha da bola é azul (colour=“blue”) e seu interior é branco (fill=“white”).
Já a função geom_text vai definir o tipo de número para as bolas. Queremos valores do PIB arredondados em uma casa decimal (round(Volume,1)). Queremos que os números com um certo tamanho nas bolas (size=3), centralizados horizontalmente (hjust=0.5) e verticalmente (vjust=0.5). Finalmente, a cor dos números (colour=“red”).
Os comandos xlab e ylab definem, em aspas simples, os nomes dos eixos.
O comando labs é meio, evidente, não é? Só lembrando que o termo caption designa a nota de rodapé do gráfico.
Cores no R: http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
Formas (shapes) no R: http://sape.inf.usi.ch/quick-reference/ggplot2/shape