The Central Bank of Brazil (BCB) offers access to its SGS system (sistema gerenciador de series temporais) with a official API available here.
Package GetBCBData offers a R interface to the API and many other advantages:
memoise
to speed up repeated requests of data;Let’s have a look at unemployment rates around the world. After searching for the ids in the SGS system, we find the ids for 6 countries and set it as input id
.
Now, lets download the data with GetBCBData
:
library(GetBCBData)
library(tidyverse)
my.countries <- c('Germany', 'Canada', 'USA',
'France', 'Italy', 'Japan')
my.ids <- c(3785:3790)
names(my.ids) <- paste0('Unemp. rate - ', my.countries)
df.bcb <- gbcbd_get_series(id = my.ids ,
first.date = '2000-01-01',
last.date = Sys.Date(),
format.data = 'long',
#series.name = 'ABC',
use.memoise = TRUE,
cache.path = tempdir(), # use tempdir for cache folder
do.parallel = FALSE)
glimpse(df.bcb)
## Observations: 1,196
## Variables: 4
## $ ref.date <date> 2000-01-01, 2000-02-01, 2000-03-01, 2000-04-01, 200…
## $ value <dbl> 8.2, 8.1, 8.1, 8.0, 8.0, 8.0, 7.9, 7.9, 7.9, 7.8, 7.…
## $ id.num <int> 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785…
## $ series.name <chr> "Unemp. rate - Germany", "Unemp. rate - Germany", "U…
p <- ggplot(df.bcb, aes(x = ref.date, y = value) ) +
geom_line() +
labs(title = 'Unemploymnent Rates Around the World',
subtitle = paste0(min(df.bcb$ref.date), ' to ', max(df.bcb$ref.date)),
x = '', y = 'Percentage*100') + facet_wrap(~series.name)
print(p)