wilsonfreitas/rbcb
wilsonfreitas/rbcb is a R project with 98 stars. R interface to Brazilian Central Bank web services
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Snapshot
Top contributors
Show top contributors
rbcb 
An interface to structure the information provided by the Brazilian Central Bank. This package interfaces the Brazilian Central Bank web services to provide data already formatted into R’s data structures.
Install
From CRAN:
install.packages("rbcb")
From github using remotes:
remotes::install_github('wilsonfreitas/rbcb')
Features
- rbcb
- Install
- Features
- Usage
- The
get_seriesfunction - Market expectations
- OLINDA API for currency rates
- Currency rates
- Cross currency rates
- The
- Usage
Usage
Load the package:
library(rbcb)
The get_series function
Download the series by calling
rbcb::get_series and pass the time series code is as the first
argument. For example, let’s download the USDBRL time series which code
is 1.
rbcb::get_series(c(USDBRL = 1))
#> # A tibble: 9,434 x 2
#> date USDBRL
#> <date> <dbl>
#> 1 1984-11-28 2828
#> 2 1984-11-29 2828
#> 3 1984-11-30 2881
#> 4 1984-12-03 2881
#> 5 1984-12-04 2881
#> 6 1984-12-05 2923
#> 7 1984-12-06 2923
#> 8 1984-12-07 2923
#> 9 1984-12-10 2965
#> 10 1984-12-11 2965
#> # ... with 9,424 more rows
Note that this series starts at 1984 and has approximately 8000 rows.
Also note that you can name the downloaded series by passing a named
vector in the code argument. To download recent values you should
use the argument last = N, see below.
rbcb::get_series(c(USDBRL = 1), last = 10)
#> # A tibble: 10 x 2
#> date USDBRL
#> <date> <dbl>
#> 1 2022-07-12 5.41
#> 2 2022-07-13 5.40
#> 3 2022-07-14 5.46
#> 4 2022-07-15 5.40
#> 5 2022-07-18 5.37
#> 6 2022-07-19 5.39
#> 7 2022-07-20 5.43
#> 8 2022-07-21 5.48
#> 9 2022-07-22 5.45
#> 10 2022-07-25 5.41
The series can be downloaded in many
different types: tibble, xts, ts or data.frame, but the default
is tibble. See the next example where the Brazilian Broad Consumer
Price Index (IPCA) is downloaded as xts object.
rbcb::get_series(c(IPCA = 433), last = 12, as = "xts")
#> IPCA
#> 2021-07-01 0.96
#> 2021-08-01 0.87
#> 2021-09-01 1.16
#> 2021-10-01 1.25
#> 2021-11-01 0.95
#> 2021-12-01 0.73
#> 2022-01-01 0.54
#> 2022-02-01 1.01
#> 2022-03-01 1.62
#> 2022-04-01 1.06
#> 2022-05-01 0.47
#> 2022-06-01 0.67
or as a ts object.
rbcb::get_series(c(IPCA = 433), last = 12, as = "ts")
#> Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2021 0.96 0.87 1.16 1.25 0.95 0.73
#> 2022 0.54 1.01 1.62 1.06 0.47 0.67
Multiple series can be downloaded at once by passing a named vector with the series codes. The return is a named list with the downloaded series.
rbcb::get_series(c(IPCA = 433, IGPM = 189), last = 12, as = "ts")
#> $IPCA
#> Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2021 0.96 0.87 1.16 1.25 0.95 0.73
#> 2022 0.54 1.01 1.62 1.06 0.47 0.67
#>
#> $IGPM
#> Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2021 0.78 0.66 -0.64 0.64 0.02 0.87
#> 2022 1.82 1.83 1.74 1.41 0.52 0.59
Market expectations
The function
get_market_expectations returns market expectations discussed in the
Focus Report that summarizes the statistics calculated from expectations
collected from market practitioners.
The first argument type accepts the following values:
annual: annual expectationsquarterly: quarterly expectationsmonthly: monthly expectationstop5s-monthly: monthly expectations for top 5 indicatorstop5s-annual: annual expectations for top 5 indicatorsinflation-12-months: inflation expectations for the next 12 monthsinstitutions: market expectations informed by financial institutions
The example below shows how to download IPCA’s monthly expectations.
rbcb::get_market_expectations("monthly", "IPCA", end_date = "2018-01-31", `$top` = 5)
#> # A tibble: 5 x 10
#> Indicador Data DataReferencia Media Mediana DesvioPadrao Minimo Maximo numeroRespondentes baseCalculo
#> <chr> <date> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <int>
#> 1 IPCA 2018-01-31 06/2019 0.21 0.2 0.07 0.13 0.36 14 1
#> 2 IPCA 2018-01-31 06/2019 0.2 0.2 0.1 -0.3 0.36 43 0
#> 3 IPCA 2018-01-31 05/2019 0.31 0.29 0.06 0.22 0.43 19 1
#> 4 IPCA 2018-01-31 05/2019 0.31 0.3 0.06 0.15 0.45 55 0
#> 5 IPCA 2018-01-31 04/2019 0.38 0.39 0.1 0.16 0.61 20 1
OLINDA API for currency rates
Use currency functions to download currency rates from the BCB OLINDA API.
olinda_list_currencies()
#> symbol name currency_type
#> 1 AUD Dólar australiano B
#> 2 CAD Dólar canadense A
#> 3 CHF Franco suíço A
#> 4 DKK Coroa dinamarquesa A
#> 5 EUR Euro B
#> 6 GBP Libra Esterlina B
#> 7 JPY Iene A
#> 8 NOK Coroa norueguesa A
#> 9 SEK Coroa sueca A
#> 10 USD Dólar dos Estados Unidos A
Use olinda_get_currency function to download data from specific
currency by the currency symbol.
olinda_get_currency("USD", "2017-03-01", "2017-03-03")
#> # A tibble: 13 x 3
#> datetime bid ask
#> <dttm> <dbl> <dbl>
#> 1 2017-03-01 14:37:41 3.10 3.10
#> 2 2017-03-01 15:37:01 3.10 3.10
#> 3 2017-03-01 15:37:01 3.10 3.10
#> 4 2017-03-02 10:04:33 3.11 3.11
#> 5 2017-03-02 11:07:36 3.10 3.10
#> 6 2017-03-02 12:10:41 3.12 3.12
#> 7 2017-03-02 13:06:27 3.12 3.12
#> 8 2017-03-02 13:06:27 3.11 3.11
#> 9 2017-03-03 10:10:38 3.13 3.13
#> 10 2017-03-03 11:10:48 3.13 3.13
#> 11 2017-03-03 12:07:35 3.14 3.14
#> 12 2017-03-03 13:07:10 3.14 3.14
#> 13 2017-03-03 13:07:10 3.14 3.14
The rates come quoted in BRL, so 3.10 is worth 1 USD in BRL.
Parity values
Type A currencies have parity values quoted in USD (1 CURRENCY in USD).
olinda_get_currency("CAD", "2017-03-01", "2017-03-01")
#> # A tibble: 3 x 3
#> datetime bid ask
#> <dttm> <dbl> <dbl>
#> 1 2017-03-01 14:37:41 2.32 2.32
#> 2 2017-03-01 15:37:01 2.32 2.32
#> 3 2017-03-01 15:37:01 2.32 2.32
olinda_get_currency("CAD", "2017-03-01", "2017-03-01", parity = TRUE)
#> # A tibble: 3 x 3
#> datetime bid ask
#> <dttm> <dbl> <dbl>
#> 1 2017-03-01 14:37:41 1.33 1.33
#> 2 2017-03-01 15:37:01 1.33 1.33
#> 3 2017-03-01 15:37:01 1.33 1.33
Type B currencies have parity values as 1 USD in CURRENCY, see AUD, for example.
olinda_get_currency("AUD", "2017-03-01", "2017-03-01")
#> # A tibble: 3 x 3
#> datetime bid ask
#> <dttm> <dbl> <dbl>
#> 1 2017-03-01 14:37:41 2.38 2.38
#> 2 2017-03-01 15:37:01 2.38 2.38
#> 3 2017-03-01 15:37:01 2.38 2.38
olinda_get_currency("AUD", "2017-03-01", "2017-03-01", parity = TRUE)
#> # A tibble: 3 x 3
#> datetime bid ask
#> <dttm> <dbl> <dbl>
#> 1 2017-03-01 14:37:41 0.768 0.768
#> 2 2017-03-01 15:37:01 0.767 0.768
#> 3 2017-03-01 15:37:01 0.767 0.768
Currency rates
Use currency functions to download currency rates from the BCB web site.
rbcb::get_currency("USD", "2017-03-01", "2017-03-10")
#> # A tibble: 8 x 3
#> date bid ask
#> <date> <dbl> <dbl>
#> 1 2017-03-01 3.10 3.10
#> 2 2017-03-02 3.11 3.11
#> 3 2017-03-03 3.14 3.14
#> 4 2017-03-06 3.11 3.11
#> 5 2017-03-07 3.12 3.12
#> 6 2017-03-08 3.15 3.15
#> 7 2017-03-09 3.17 3.17
#> 8 2017-03-10 3.16 3.16
The rates come quoted in BRL, so 3.0970 is worth 1 USD in BRL.
All currency time series have an attribute called symbol that stores
its own currency name.
attr(rbcb::get_currency("USD", "2017-03-01", "2017-03-10"), "symbol")
#> [1] "USD"
Trying another currency.
get_currency("JPY", "2017-03-01", "2017-03-10") |> Ask()
#> # A tibble: 8 x 2
#> date JPY
#> <date> <dbl>
#> 1 2017-03-01 0.0273
#> 2 2017-03-02 0.0272
#> 3 2017-03-03 0.0274
#> 4 2017-03-06 0.0274
#> 5 2017-03-07 0.0274
#> 6 2017-03-08 0.0274
#> 7 2017-03-09 0.0276
#> 8 2017-03-10 0.0275
To see the avaliable currencies call list_currencies.
rbcb::list_currencies()
#> # A tibble: 218 x 5
#> name code symbol country_name country_code
#> <chr> <dbl> <chr> <chr> <dbl>
#> 1 AFEGANE AFEGANIST 5 AFN AFEGANISTAO 132
#> 2 RANDE/AFRICA SUL 785 ZAR AFRICA DO SUL 7560
#> 3 LEK ALBANIA REP 490 ALL ALBANIA, REPUBLICA DA 175
#> 4 EURO 978 EUR ALEMANHA 230
#> 5 KWANZA/ANGOLA 635 AOA ANGOLA 400
#> 6 DOLAR CARIBE ORIENTAL 215 XCD ANGUILLA 418
#> 7 DOLAR CARIBE ORIENTAL 215 XCD ANTIGUA E BARBUDA 434
#> 8 RIAL/ARAB SAUDITA 820 SAR ARABIA SAUDITA 531
#> 9 DINAR ARGELINO 95 DZD ARGELIA 590
#> 10 PESO ARGENTINO 706 ARS ARGENTINA 639
#> # ... with 208 more rows
There are 216 currencies available.
Cross currency rates
The API provides a matrix with the relations between exchange rates, this is the matrix of cross currency rates. This is a square matrix with the all exchange rates between all currencies.
x <- rbcb::get_currency_cross_rates("2017-03-10")
dim(x)
#> [1] 156 156
# Since there are many currencies it is interesting to subset the matrix.
cr <- c("USD", "BRL", "EUR", "CAD")
x[cr, cr]
#> USD BRL EUR CAD
#> USD 1.0000000 3.1623 0.9380896 1.3465764
#> BRL 0.3162255 1.0000 0.2966479 0.4258218
#> EUR 1.0659963 3.3710 1.0000000 1.4354454
#> CAD 0.7426240 2.3484 0.6966479 1.0000000
The rates are quoted by its columns labels, so the numbers in the BRL column are worth one currency unit in BRL.
Related repositories
Master programming by recreating your favorite technologies from scratch.
A curated meta-list of curated lists organized by technology domain. The repository acts as a directory pointing to hundreds of specialized awesome lists covering programming languages, platforms, frameworks, and tooling. All content is community-contributed under the CC0 public domain dedication.
Public APIs is a community-curated GitHub repository listing free, publicly accessible APIs across a wide range of categories, with auth type, HTTPS, and CORS noted for each entry. It's a browsable reference, not a library to install.
freeCodeCamp is a free, self-paced curriculum for learning to code, published as open source at freeCodeCamp/freeCodeCamp. It's a 501(c)(3) nonprofit funded by donor support, structured around six certifications in its Full-Stack Developer Curriculum, each gated by required projects instead of open-book quizzes. The repository also carries beta language certifications for developers, interview-prep resources, and the code that runs the live freecodecamp.org platform.
Quick answers
Is wilsonfreitas/rbcb open source?
TopGit's metadata for wilsonfreitas/rbcb does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is wilsonfreitas/rbcb?
wilsonfreitas/rbcb (wilsonfreitas/rbcb) is a R project on GitHub. From the project's own README: R interface to Brazilian Central Bank web services
Where do I read more about wilsonfreitas/rbcb?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/wilsonfreitas/rbcb is the definitive source.
Read full README in the tab above.
Curious whether rbcb is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about rbcb.