【R】wbstat

1. はじめに

”貧困削減と持続的成長の実現に向けて、途上国政府に対し融資、技術協力、政策助言を提供する国際開発金融機関”である世界銀行は、様々な統計データを提供してくれています。

このデータをRで簡単に取得できるパッケージwbstatがあります。これを使って、データ取得、表示を行ってみます。

2. インストール

CRANからインストールします。

install.packages("wbstats")

最新の開発版はこちらから。

remotes::install_github("nset-ornl/wbstats")

3. 使ってみる

3.1 データ取得

まずは、各国の1960年から現在までの人口データを取得するには、このようになります。世界銀行の”World development indicaters“ページ内の”Data Themes”ページに各indicatorのcodeが記されています。このcodeを指定してデータを取得します。

library(wbstats)

d <- wb_data("SP.POP.TOTL")

すると、以下のようにデータが取得できます。

> d
# A tibble: 13,020 x 9
   iso2c iso3c country      date SP.POP.TOTL unit  obs_status footnote last_updated
   <chr> <chr> <chr>       <dbl>       <dbl> <chr> <chr>      <chr>    <date>      
 1 AF    AFG   Afghanistan  2019    38041754 NA    NA         NA       2020-07-01  
 2 AF    AFG   Afghanistan  2018    37172386 NA    NA         NA       2020-07-01  
 3 AF    AFG   Afghanistan  2017    36296400 NA    NA         NA       2020-07-01  
 4 AF    AFG   Afghanistan  2016    35383128 NA    NA         NA       2020-07-01  
 5 AF    AFG   Afghanistan  2015    34413603 NA    NA         NA       2020-07-01  
 6 AF    AFG   Afghanistan  2014    33370794 NA    NA         NA       2020-07-01  
 7 AF    AFG   Afghanistan  2013    32269589 NA    NA         NA       2020-07-01  
 8 AF    AFG   Afghanistan  2012    31161376 NA    NA         NA       2020-07-01  
 9 AF    AFG   Afghanistan  2011    30117413 NA    NA         NA       2020-07-01  
10 AF    AFG   Afghanistan  2010    29185507 NA    NA         NA       2020-07-01  
# ... with 13,010 more rows

また、次のように、複数のindicatorをまとめて、年を指定して取得することもできます。

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
# A tibble: 217 x 7
   iso2c iso3c country               date gdp_capita life_exp      pop
   <chr> <chr> <chr>                <dbl>      <dbl>    <dbl>    <dbl>
 1 AW    ABW   Aruba                 2016     28281.     75.9   104872
 2 AF    AFG   Afghanistan           2016       547.     63.8 35383128
 3 AO    AGO   Angola                2016      3506.     59.9 28842484
 4 AL    ALB   Albania               2016      4124.     78.2  2876101
 5 AD    AND   Andorra               2016     37475.     NA      77297
 6 AE    ARE   United Arab Emirates  2016     38142.     77.5  9360980
 7 AR    ARG   Argentina             2016     12790.     76.2 43590368
 8 AM    ARM   Armenia               2016      3592.     74.6  2936146
 9 AS    ASM   American Samoa        2016     11697.     NA      55741
10 AG    ATG   Antigua and Barbuda   2016     15198.     76.6    94527
# ... with 207 more rows

3.2 データの表示

データはtibble形式で取得されるため、簡単に表示できます。ここでは、各国の耕作地の割合(Agricultural land (% of land area))を表示してみます。codeは”AG.LND.AGRI.ZS”です。

library(rnaturalearth)
library(tidyverse)
library(wbstats)

ind <- "AG.LND.AGRI.ZS"
indicator_info <- filter(wb_cachelist$indicators, indicator_id == ind)

ne_countries(returnclass = "sf") %>%
  left_join(
    wb_data(
      c(agri_land = ind), 
      mrnev = 1
    ),
    c("iso_a3" = "iso3c")
  ) %>%
  filter(iso_a3 != "ATA") %>% # remove Antarctica
  ggplot(aes(fill = agri_land)) +
  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) 
  )

4. さいごに

世界銀行から様々なデータを簡単に取得できて有効活用できそうです。

Add a Comment

メールアドレスが公開されることはありません。