【R】wbstat
2020年8月10日
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. さいごに
世界銀行から様々なデータを簡単に取得できて有効活用できそうです。