Hackeando o R: Produzindo Relatórios Automáticos no R

Um dos maiores benefícios da linguagem em R está na facilidade do trabalho com análise de dados, sendo uma das etapas mais importantes no trabalho com dados contida na visualização e comunicação dos resultados. A linguagem R facilita também esse trabalho, utilizando o Rmarkdown para criar apresentações a partir do código e que tenha diversos formatos: PDF, HTML, Word e entre outros. No Hackeando o R de hoje, iremos aprender a criar relatórios automáticos no R, com base no conhecimento introdutório do nosso curso de Produção de Relatórios no R.

A maneira mais comum de criar um relatório no R é utilizando a ferramenta Rmarkdown. Para utilizada é importante que se tenha instalado o Rstudio, o pacote {rmarkdown} e também, para caso haja a criação de documentos PDF, um distribuidor de LaTeX. Para o caso, pode-se utilizar o tinytex, sendo sua instalação facilitada no R utilizando os seguintes código.


# Instala o pacote tinytex

install.packages("tinytex")

# Instala o distribuidor no computado

tinytex::install_tinytex()

Após isso, podemos criar documentos PDF com o Rstudio. Para a criação, cria-se um documento em Rmarkdown e configuramos o YAML e os chunks do código. Para criar o documento, vá em File > New File > R markdown.

Aparecerá uma tela para escolher o output do documento, como queremos um documento em PDF, selecionamos essa opção.

 

Temos a opção de criar relatório automáticos a partir de um relatório customizados, no qual ensinamos a como criar nesse post.

Criamos nosso código com base em um Relatório automático do IPCA-15.

Para se aprofundar no mundo do Rmarkdown, veja nosso Curso de Produção de Relatórios em Rmarkdown, e caso queira como coletar, tratar e visualizar dados sobre o IPCA-15, veja nosso Curso de Análise de Conjuntura.


---
title: "IPCA-15"
output: pdf_document
---

# Configurações dos chunks
knitr::opts_chunk$set(
echo = FALSE, # não mostra o código
eval = TRUE, # executar o código
fig.cap = "", # título do gráfico
results = "asis", # formato de renderização de texto
fig.width = 8, # largura do gráfico
fig.height = 4, # altura do gráfico
fig.align = "center", # alinhamento horizontal do gráfico
out.width = "100%", # redimensionamento do gráfico (aumentar/diminuir em %)
warning = FALSE, # exibir avisos do console
message = FALSE, # exibir mensagens do console
size = "tiny" # tamanho da fonte
)

# Carrega os pacotes

library(tidyverse)
library(sidrar)
library(scales)
library(ggrepel)
library(png)
library(grid)
library(forecast)
library(xts)
library(reshape2)
library(RcppRoll)

 

 

</pre>
# Cria a função para calcular o IPCA 15 acumulado em 12 meses

acum_p <- function(data, n){

factor <- (1+(data/100))

prod <- RcppRoll::roll_prodr(factor, n = n)

final <- (prod-1)*100

return(final)

}

# Cria um vetor de cores para utilizar no gráfico dos grupos do IPCA 15

colours <- c("#428953", "#CE2929", "#A3DD57", "#77E599", "#5675D6",
"#65ECEF", "#FF8B07", "#D0B100", "#636363")
<pre>

 

# IPCA-15

### Variação Mensal</pre></pre>
# Coleta os dados mensais do IPCA-15 através do SIDRA

ipca15 <- get_sidra(api = "/t/3065/n1/all/v/355/p/all/d/v355%202") %>%
mutate(date = parse_date(`Mês (Código)`, format = "%Y%m")) %>%
select(date, Valor) %>%
rename(ipca15_mensal = "Valor") %>%
as_tibble()

# Gráfico da variação mensal do IPCA-15

ggplot(data = ipca15, aes(x = date, y = ipca15_mensal))+
geom_line(size = .8, colour = "darkblue")+
geom_hline(yintercept = 0, colour = "red", linetype = 'dashed')+
labs(title = "Inflação Mensal IPCA-15",
caption = "Fonte: analisemacro.com.br com dados do IBGE",
x = "",
y = "")+
scale_x_date(breaks = date_breaks('1 year'),
labels = date_format("%Y"))+
theme(axis.text.x = element_text(angle=45,
hjust=1),
panel.background = element_rect(fill='white',
colour='white'))
<pre>

### Variação Acumulada em 12 meses</pre>
# Calcula a variação acumulada em 12 meses

ipca15 <- ipca15 %>%
mutate(ipca15_anual = acum_p(ipca15_mensal, 12))

# Cria os valores da meta de inflação

meta <- c(rep(4.5, 139), rep(4.25, 12),
rep(4, 12), rep(3.75, 12), rep(3.5, 12), rep(3.25, 12))

meta_max <- c(rep(4.5+2, 115), meta[-(1:115)]+1.5)
meta_min <- c(rep(4.5-2, 115), meta[-(1:115)]-1.5)

metas <- tibble(lim_sup=meta_max, meta=meta,
lim_inf=meta_min,
date = seq(as.Date('2007-06-01'), as.Date('2023-12-01'),
by='1 month'))

# Junta em tibble os dados da meta e do IPCA-15

ipca15 <- inner_join(ipca15, metas, by='date')

# Plota a variação acumulada em 12 meses do IPCA-15 em conjunto com as metas

ggplot(ipca15, aes(x = date, y = ipca15_anual))+
geom_ribbon(aes(ymin=lim_inf, ymax=lim_sup),
colour='grey70', alpha=0.2)+
geom_line(aes(y=ipca15_anual, colour='Inflação 12 meses'), size=.8)+
geom_line(aes(y=meta, colour='Meta de Inflação'), size=.8)+
scale_colour_manual('',
values=c('Inflação 12 meses'='darkblue',
'Meta de Inflação'='red'))+
labs(title='Inflação medida pelo IPCA-15 acumulado em 12 meses',
caption='Fonte: analisemacro.com.br com dados do IBGE.',
x = "",
y = "")+
scale_x_date(breaks = date_breaks("1 year"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
legend.position = c(.2,.85),
legend.key.size = unit(0.2, "cm"),
plot.title = element_text(size=12, face='bold'),
panel.background = element_rect(fill='white',
colour='white'))+
geom_label_repel(label=round(tail(ipca15$ipca15_anual, 1) ,2),
nudge_y = 2,
nudge_x = -2,
data = tail(ipca15, 1),
color = 'bl
<pre>

 

 


### Sazonalidade

É possível visualizar a sazonalidade do IPCA-15 e ver qual mês tende a possuir as menores ou maiores variações.</pre>
# Trata os dados do IPCA 15</pre>
# Trata os dados do IPCA 15

ipca15ts <- ts(ipca15$ipca15_mensal, start = c(2000,05), freq = 12)

# Visualiza a sazonalidade

ggsubseriesplot(ipca15ts)+
theme(panel.background = element_rect(fill='white',
colour='white'))+
labs(x = "",
y = "",
title = "Sazonalidade - IPCA-15",
caption = "Fonte: analisemacro.com.br com dados do IBGE")
<pre>

 

 

Criado o código nos chunks, cria-se o relatório utilizando o botão knit no Rstudio. O resultado aparecerá em um PDF na pasta em que utilizou como trabalho no Rstudio.

___________________

O processo envolve muito mais possibilidades de criação, além também da customização. Você pode aprender a criar Relatórios mais completos a partir do nosso Curso de Produção de Relatórios em Rmarkdown.

___________________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise de ações com IA - um guia inicial

Neste artigo, você vai aprender a integrar IA na análise de ações de forma automatizada utilizando Python. Ao final, você terá um pipeline completo capaz de coletar dados de mercado, gerar gráficos, elaborar relatórios com linguagem natural.

Quais são as ferramentas de IA?

Um aspecto crucial dos Agentes de IA é a sua capacidade de tomar ações, que acontecem por meio do uso de Ferramentas (Tools). Neste artigo, vamos aprender o que são Tools, como defini-las de forma eficaz e como integrá-las ao seu Agente por meio da System Prompt. Ao fornecer as Tools certas para o seu Agente — e ao descrever claramente como essas Tools funcionam — você pode aumentar drasticamente o que sua IA é capaz de realizar.

Otimizando um Portfólio de Investimentos com Machine Learning

A construção de portfólio ótimo refere-se ao processo de alocar eficientemente capital entre um conjunto predefinido de ativos ou títulos. O campo da construção de portfólio tem sido extensivamente estudado por acadêmicos e profissionais desde a década de 1950, quando Markowitz introduziu sua inovadora abordagem de média-variância para a construção de portfólio. Diante disso, podemos melhorar o processo de alocação de peso de um investimento em um portfólio através do Aprendizado não supervisionado com a aplicação do Hierarchical Risk Parity (HRP). Neste exercício, realizamos uma introdução ao método e mostramos os resultados de um exemplo criado através do Python.

Boletim AM

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

Boletim AM

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

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.