Tag

datas no r Archives - Análise Macro

Hackeando o R: Como formatar datas

By | Hackeando o R

Todos já tiveram dificuldades ao tentar lidar com datas no R, seja por problemas de importação ou por qualquer transformação nos dados. No post de hoje, ensinamos a melhor forma de transformar dados em data no R.

No R existem diferentes tipos de dados: character, factor, logical, integer, double, date e etc. O comportamento padrão do R para reconhecimento de dados possui uma hierarquia, portanto, é possível que ao ser importado determinado conjunto de dados, eles não estejam em sua forma ideal (isto é, no seu tipo correto).

Para tanto, o pacote {lubridate} nos ajuda na missão de realizar transformações de dados em data de forma fácil funcionando em conjunto com outros pacotes da família do {tidyverse}.

No exemplo abaixo, retiramos os dados da Pesquisa Industrial Mensal direto do Sidra, utilizando o pacote {sidrar}. Na estrutura do objeto importado, vemos como o R lidou com a coluna de data, bem como o formato em que as observações estão em "anomês" (200201). O ideal é transformar no tipo de dado date e obter um formato de data mais interessante, talvez como "ano-dia-mes".

Para obter a transformação para tipo date, podemos utilizar a função ym(), que permite, através de um formato pré-estabelecido de ano e mês, como as observações se encaixam, transformar em tipo date e em um formato mais amigável (2002-01-01).

E caso não tivermos o formato de ano e mês, e sim em outro formato? Qual função ou formato podemos utilizar ? A função guess_formats() retorna o formato que o R (e consequentemente as funções do {lubridate}) reconhece para realizar a transformação. Colocamos na função os valores e a ordem do formato das observações. Com o resultado, utilizamos a função parse_date_time(), do mesmo modo que utilizamos a função ym(), porém, especificando o formato retornado por guess_formats().

Veja que utilizamos o formato "%Y%0M%, entregue por guess_formats, porém, que na prática, possui o mesmo resultado anterior.

____________________________________________

Quer saber mais?

Veja nossos cursos de R e Python aplicados para a Análise de Dados e Economia

_____________________________________________

Visualizando dados de Covid-19 com o pacote tidycovid19

By | Hackeando o R

O pacote tidycovid19, disponível no github, permite customizar a visualização dos dados de Covid-19 de forma bastante simples. Veja abaixo um exemplo.

library(tidyverse)
library(tidycovid19)
covid19_dta <- download_merged_data(silent = TRUE, cached = TRUE)
plot_covid19_spread(
covid19_dta, type = "deaths", min_cases = 100, min_by_ctry_obs = 0,
edate_cutoff = 69, per_capita = FALSE, log_scale = TRUE,
cumulative = TRUE, change_ave = 7,
highlight = c('BRA', 'ARG', 'CHL', 'CHN', 'COL',
'ECU', 'IND', 'MEX', 'PER', 'PRY', 'TUR', 'URY'),
intervention = c("soc_dist")
)

(*) Aprenda R em nosso Curso de Introdução ao R para Análise de Dados.


Lidando com datas trimestrais no R

By | Hackeando o R

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.


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

Assinar Gratuitamente