Learn R Programming

gdldata

Retrieve datasets from the Global Data Lab (GDL) website directly into R data frames. Functions are provided to reference available options (indicators, regions, countries) as well.

Prerequisites

To work with the gdldata package, an API access token is required. Such a token may be created for free on the Global Data Lab website. Simply log in, go to 'My GDL', and go to 'API Access'.

Note that, by default, GDL only allows one active token per user. However, for academic purposes, this limit may be increased, e.g. to facilitate classroom settings.

Installation

# Install released version from CRAN
install.packages("gdldata")
# Install development version from GitHub
devtools::install_github("GlobalDataLab/R-data-api")

Usage

To get started, include the gdldata library:

library(gdldata)

Then create a GDL session object using your personal API access token, e.g.:

sess <- gdl_session("SUBSTITUTE-WITH-YOUR-ACCESS-TOKEN")

This session object can be used to build your next API request, and facilitates partial request reuse. For example, we can use it to retrieve the IWI indicator for India:

sess <- set_indicator(sess, 'iwi')
sess <- set_country(sess, 'IND')
iwi_india <- gdl_request(sess)

We can reuse the same session object to retrieve more data. For example, we reuse it to retrieve several SHDI indicators for Belgium, Luxembourg, and The Netherlands:

sess <- set_dataset(sess, 'shdi')
sess <- set_countries(sess, c('BEL', 'LUX', 'NLD'))
sess <- set_indicators(sess, c('healthindex', 'edindex', 'incindex'))
shdi_benelux <- gdl_request(sess)

Using pipes instead

To reduce verbosity, popular pipe operators may be used as well. You can either use the built-in pipe operator |> (R >= 4.1) or use the %>% operator from magrittr as a substitute. Consider the following example:

library(magrittr)

sess <- sess %>%
    set_dataset('shdi') %>%
    set_countries(c('BEL', 'LUX', 'NLD')) %>%
    set_indicators(c('healthindex', 'edindex', 'incindex')) %>%
shdi_benelux <- gdl_request(sess)

Note that we could prepend gdl_session() and append gdl_request() to the pipe chain as well. However, to facilitate reuse of the session object, we recommend against this.

Additional reference functions

The GDL database may be explored fully without having to fall back to browsing the website. To this end, we provide the following reference functions:

gdl_indicators(session)    # retrieves a list of indicators
gdl_levels(session)        # retrieves a list of aggregation levels
gdl_countries(session)     # retrieves a list of available countries
gdl_regions(session, iso3) # retrieves a list of regions in a particular country

Contributing

We welcome bug reports and feature requests in our issue tracker on GitHub.

Copy Link

Version

Install

install.packages('gdldata')

Monthly Downloads

507

Version

0.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Aaron van Geffen

Last Published

September 20th, 2023

Functions in gdldata (0.1)

set_interpolation

Set interpolation state
set_indicator

Set the indicator to retrieve
set_extrapolation_years_nearest

Set the number of years to fill out using nearest available data
gdl_session

GDL session constructor
gdl_levels

Get level list
set_countries_all

Set session to retrieve data for all available countries
gdl_countries

Get country list
gdl_regions

Get region list
set_countries

Set countries to retrieve data for
gdl_indicators

Get indicator list
gdl_request

Data request function
set_country

Set country to retrieve data for
GDLSession-class

GDLSession class
set_year

Set year to retrieve data for
set_levels

Set data levels to retrieve data for
set_indicators

Set the indicators to retrieve
set_extrapolation_years_linear

Set the number of years to extrapolate linearly.
set_dataset

Set session to retrieve data from a particular dataset
show.GDLSession

GDLSession show function