Para quem está começando no R, pode ser um pouco chato lidar com datas. Por exemplo, imagine que você queira lidar com dados trimestrais e queira plotar um gráfico com o eixo x em trimestres e não em anos ou em meses, por exemplo. Para ilustrar o problema, considere essa planilha do IPEA que contém dados do PIB efetivo e do PIB potencial construído através do método da função de produção. Nós ensinamos a lidar com esse tipo de dado nos laboratórios do nosso curso de Teoria Macroeconômica.
Nós podemos importar essa planilha para o R através do pacote readxl, que vemos no nosso Curso de Introdução ao R para Análise de Dados. No código abaixo, nós carregamos outros pacotes que utilizaremos para tratar os dados e também para criar o nosso gráfico.
library(readxl) library(zoo) library(lubridate) library(tidyverse) data = read_excel('CC45_Produto-Potencial_série-completa.xlsx', range='A2:D109')
Feita a importação dos dados, teremos um tibble com a primeira coluna sendo um vetor de caracteres e não uma data, como queremos. Para que possamos dizer para o R que a primeira coluna é, na verdade, uma data trimestral, precisaremos fazer algumas modificações. Primeiro, vamos usar a função gsub para substituir o 'T' por 'zero'. Depois utilizamos a função sub para acabar com o espaço entre o ano e o "TX". Feito isso, podemos usar a função as.yearqtr do pacote zoo para, finalmente, transformar a nossa data em trimestres. O código a seguir operacionaliza.
data$Trimestre = as.yearqtr(sub(' ', '', gsub('T', '0', data$Trimestre)), format='%Y%q')
Uma vez feito isso, você poderá reparar que o R transformou a nossa coluna em uma classe que representa dados trimestrais. Assim, estamos prontos para criar um gráfico como abaixo.
colnames(data) = c('date', 'potencial', 'pib', 'hiato') ggplot(data, aes(x=date, y=hiato*100))+ geom_line()+ geom_hline(yintercept=0, colour='red', linetype='dashed')+ scale_x_yearqtr(breaks = seq(from = min(data$date), to = max(data$date), by = 1), format = "%YQ%q")+ theme(axis.text.x=element_text(angle=45, hjust=1), plot.title = element_text(size=10, face='bold'))+ labs(x='', y='', title='Hiato do Produto', caption='Fonte: IPEA')
Pronto!
____________________
(*) Isso e muito mais você aprende em nosso Curso de Introdução ao R para Análise de Dados.