https://github.com/gshs-ornl/wbstats
wbstats: An R package for searching and downloading data from the World Bank API
https://github.com/gshs-ornl/wbstats
open-data r r-package rstats world-bank world-bank-api worldbank
Last synced: 4 months ago
JSON representation
wbstats: An R package for searching and downloading data from the World Bank API
- Host: GitHub
- URL: https://github.com/gshs-ornl/wbstats
- Owner: gshs-ornl
- License: other
- Created: 2016-04-21T18:19:07.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-12-02T12:40:47.000Z (over 2 years ago)
- Last Synced: 2026-01-27T03:55:08.551Z (5 months ago)
- Topics: open-data, r, r-package, rstats, world-bank, world-bank-api, worldbank
- Language: R
- Homepage: http://gshs-ornl.github.io/wbstats/
- Size: 14 MB
- Stars: 131
- Watchers: 11
- Forks: 24
- Open Issues: 18
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
README
---
output:
md_document:
variant: markdown_github
---
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/"
)
```
# wbstats: An R package for searching and downloading data from the World Bank API
[](https://CRAN.R-project.org/package=wbstats)
[](https://CRAN.R-project.org/package=wbstats)
[](https://www.tidyverse.org/lifecycle/#maturing)
You can install:
The latest release version from CRAN with
```{r, eval = FALSE}
install.packages("wbstats")
```
or
The latest development version from github with
```{r, eval = FALSE}
remotes::install_github("nset-ornl/wbstats")
```
# Downloading data from the World Bank
```{r readme-download, warning=FALSE}
library(wbstats)
# Population for every country from 1960 until present
d <- wb_data("SP.POP.TOTL")
head(d)
```
## Hans Rosling's Gapminder using `wbstats`
```{r readme-chart, warning=FALSE, message=FALSE, fig.width=12, fig.height=6}
library(tidyverse)
library(wbstats)
my_indicators <- c(
life_exp = "SP.DYN.LE00.IN",
gdp_capita ="NY.GDP.PCAP.CD",
pop = "SP.POP.TOTL"
)
d <- wb_data(my_indicators, start_date = 2016)
d %>%
left_join(wb_countries(), "iso3c") %>%
ggplot() +
geom_point(
aes(
x = gdp_capita,
y = life_exp,
size = pop,
color = region
)
) +
scale_x_continuous(
labels = scales::dollar_format(),
breaks = scales::log_breaks(n = 10)
) +
coord_trans(x = 'log10') +
scale_size_continuous(
labels = scales::number_format(scale = 1/1e6, suffix = "m"),
breaks = seq(1e8,1e9, 2e8),
range = c(1,20)
) +
theme_minimal() +
labs(
title = "An Example of Hans Rosling's Gapminder using wbstats",
x = "GDP per Capita (log scale)",
y = "Life Expectancy at Birth",
size = "Population",
color = NULL,
caption = "Source: World Bank"
)
```
## Using `ggplot2` to map `wbstats` data
```{r ggplot2, fig.height=6, fig.width=8, fig.align="center", message=FALSE, warning=FALSE}
library(rnaturalearth)
library(tidyverse)
library(wbstats)
ind <- "SL.EMP.SELF.ZS"
indicator_info <- filter(wb_cachelist$indicators, indicator_id == ind)
ne_countries(returnclass = "sf") %>%
left_join(
wb_data(
c(self_employed = ind),
mrnev = 1
),
c("iso_a3" = "iso3c")
) %>%
filter(iso_a3 != "ATA") %>% # remove Antarctica
ggplot(aes(fill = self_employed)) +
geom_sf() +
scale_fill_viridis_c(labels = scales::percent_format(scale = 1)) +
theme(legend.position="bottom") +
labs(
title = indicator_info$indicator,
fill = NULL,
caption = paste("Source:", indicator_info$source_org)
)
```