Com o pacote GetBCBData
é possível baixar automaticamente dentro do R
diversas séries temporais coletadas pelo Banco Central do Brasil. Neste post mostro como fiz para baixar dados da cotação do dólar e dos valores nominais do salário mínimo brasileiro em reais, desde a criação do Plano Real até a publicação deste texto.
O primeiro passo é carregar os pacotes necessários. Além do já citado GetBCBData
, também vou carregar os pacotes tidyverse
e lubridate
, que facilitarão a manipulação dos dados e a criação do gráfico que desejo.
library(GetBCBData)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate)
O passo seguinte é visitar a página https://www3.bcb.gov.br/sgspub/. Nela é possível encontrar as ids das séries temporais que desejamos. Ao procurar por “dolar” e “salário mínimo”, notamos que as ids procuradas são 1 e 1619. Basta informar isso à função gbcbd_get_series
, junto com o intervalo de datas desejado, para baixar os dados que desejamos:
dolar <- gbcbd_get_series(id = 1,
first.date = "1994-07-01",
last.date = Sys.Date())
##
## Fetching id = 1 [1] from BCB-SGS with cache
## Found 7460 observations
sm <- gbcbd_get_series(id = 1619,
first.date = "1994-07-01",
last.date = Sys.Date())
##
## Fetching id = 1619 [1619] from BCB-SGS with cache
## Found 357 observations
Com os dados disponíveis, é preciso prepará-los para análise e armazená-los no objeto dados
. Em particular, 4 passos foram tomados:
- Apenas as colunas
ref.date
(datas das observações) evalue
(com os valores observados) foram mantidas - Os conjuntos de dados
dolar
esm
foram juntados a partir da colunaref.date
- Como os valores do dólar foram coletados diariamente, mas os do salário mínimo foram coletados a cada mês, é necessário usar a função
fill
para completar os dias que faltam para as observações referentes ao salário mínimo - Por fim, criei a coluna
sm_dolarizado
, que calcula o valor do salário mínimo em dólares para cada dia do intervalo e tranformei a colunaref.date
em data, para facilitar o trabalho com os intervalos de tempo
Juntando tudo disso, temos o código abaixo:
dados <-
dolar |>
select(ref.date, dolar = value) |>
left_join(select(sm, ref.date, sm = value), by = "ref.date") |>
fill(sm, .direction = "down") |>
mutate(sm_dolarizado = sm/dolar) |>
mutate(ref.date = ymd(ref.date))
Agora é só plotar e analisar o resultado:
ggplot(dados, aes(x = ref.date, y = sm_dolarizado)) +
geom_line() +
labs(x = "Data", y = "Salário Mínimo em US$", caption = "marcusnunes.me") +
scale_x_date(
breaks = seq.Date(from = ymd("1995-01-01"),
to = Sys.Date(),
by = "4 year"),
date_labels = "%Y"
) +
scale_y_continuous(breaks = seq(50, 350, 50), minor_breaks = NULL) +
theme_bw()
É possível ver que, a partir de 2005, houve uma forte tendência de aumento do valor do salário mínimo em dólar. Após 10 anos praticamente estável, variando entre US$50 e US$115, houve ganho real do valor do salário mínimo em dólar entre 2005 e 2012. Até 2015 esse valor permaneceu razoavelmente estável, até apresentar tendência de queda e maior volatilidade até agosto de 2022.