Clube AM

Os indexadores da Dívida Bruta viraram um gráfico interativo com o R

By 2 de fevereiro de 2017 No Comments

Muita gente que eu conheço alega que aprender é só para quem lida com muita estatística e econometria, que não valeria o investimento já que o Excel cumpre todas as funções do dia a dia. Nesse espaço procuro mostrar que não é bem assim. Com ele é possível unificar todo o processo de coleta, tratamento, análise e apresentação de dados. Para ilustrar uma vez mais, imagine que você precisa fazer um gráfico mensal a partir de dados disponíveis on line. Sem o R, você provavelmente iria no site onde está o dado, o baixaria, abriria o excel e começaria a trabalhar, não é mesmo? Depois, claro, você copiaria o gráfico e colaria no Power Point. Daí faria seu slide para apresentar ao seu cliente ou mesmo ao seu gestor. Correto? Com o R, seria diferente...

Com o R, a primeira coisa a fazer é abrir o RStudio e começar o seu script. Nesse ambiente você automatizará a sua tarefa mensal, isto é, você fará isso uma vez, depois apenas rodará o script na próxima vez que precisar. Legal, né? Mas não é só isso. Você irá no site sim, onde estão os dados, mas apenas para pegar o link do arquivo que precisa, como abaixo.

http://www.bcb.gov.br/ftp/notaecon/Partggp.zip

Com esse link, você vai começar o seu script...

## Carregar pacotes
library(ggplot2)
library(XLConnect)
## Importar dados
temp = tempfile()
download.file('http://www.bcb.gov.br/ftp/notaecon/Partggp.zip',temp)
data = unzip(temp, files='Partggp.xls')
data = loadWorkbook(data)
dbgg = readWorksheet(data, sheet = 1, header = TRUE, 
 colTypes = 'numeric')
## Retirar linhas e colunas que não interessam
dbgg = dbgg[, -c(1,2,6,10,15,16,17)] # Retirar colunas desimportantes
dbgg = dbgg[complete.cases(dbgg),] # Retirar linhas com NA
## Nomear colunas
colnames(dbgg) = c('DBGG', 'Cambial Interna', 'Cambial Externa', 
 'IGP-M', 'IGP-DI', 'IPCA', 'SELIC', 'TJLP', 'TR', 
 'PRÉ-FIXADO')
## Criar vetor de datas para o gráfico e juntar datas e dados em um mesmo objeto
dates = seq(as.Date('2006-12-01'), as.Date('2016-12-01'), by='1 month')
dbgg = cbind(dates, dbgg)
## Gerar gráfico
theme_set(theme_minimal())

ggplot(dbgg, aes(x=dates))+
 xlab('')+ylab('% DBGG')+
 geom_area(aes(y=dbgg$SELIC, fill="SELIC"))+
 geom_area(aes(y=dbgg$`PRÉ-FIXADO`, fill="PRÉ-FIXADO"))+
 geom_area(aes(y=dbgg$IPCA, fill='IPCA'))+
 geom_area(aes(y=dbgg$`Cambial Externa`, fill='CAMBIAL EXTERNA'))+
 geom_area(aes(y=dbgg$`IGP-M`, fill='IGP-M'))+
 geom_area(aes(y=dbgg$TR, fill='TR'))+
 geom_area(aes(y=dbgg$`IGP-DI`, fill='IGP-DI'))+
 geom_area(aes(y=dbgg$`Cambial Interna`, fill='CAMBIAL INTERNA'))+
 geom_area(aes(y=dbgg$TJLP, fill='TJLP'))+
 scale_fill_manual("", 
 values = c("SELIC"="darkblue", 
 "PRÉ-FIXADO"="#f8766d",
 'IPCA'="orange",
 'CAMBIAL EXTERNA'="red",
 'IGP-M'="#9999CC",
 'TR'="darkred",
 'IGP-DI'="darkgreen",
 'CAMBIAL INTERNA'="#00ba38",
 'TJLP'="blue"))+
 theme(legend.position="bottom")+
 labs(title='Indexadores da Dívida Bruta brasileira',
 caption='Fonte: analisemacro.com.br com dados do Banco Central.')
 

Com esse código você gerará um gráfico bem bonito. Mas talvez você queira disponibilizar ele on line, para qualquer um acessar. Daí você pode complementar com o código abaixo

library(plotly)
g = ggplotly()
plotly_POST(g, filename = 'dbgg', sharing = 'public')

E pronto, aí está o seu gráfico, que você pode atualizar todo mês, executando o mesmo código acima... Bom, não? 🙂

 

_____________________________________

OBS: Para integrar o R com o Plotly, veja aqui.

No nosso Curso de Análise de Conjuntura usando o R os alunos aprendem a coletar, tratar, analisar e apresentar dados macroeconômicos usando o poder do R/RStudio e do Beamer/LaTeX. Saiba mais sobre esse curso inovador clicando no botão abaixo!

Relatórios, apresentações e exercícios macroeconométricos usando extensivamente o R são feitos no âmbito do Clube do Código, o espaço de compartilhamento de códigos da Análise Macro. Ainda não conhece o Clube?! Saiba mais abaixo.

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente