FOODS4ALL HOME

OECD (Organisation for Economic Co-operation and Development) のデータのアクセスについて

1. OECD(経済協力開発機構)

1.1 About - 概要

  • OECD About: Who we are …
    The Organisation for Economic Co-operation and Development (OECD) is an international organisation that works to build better policies for better lives. Our goal is to shape policies that foster prosperity, equality, opportunity and well-being for all. We draw on almost 60 years of experience and insights to better prepare the world of tomorrow.
    Together with governments, policy makers and citizens, we work on establishing evidence-based international standards and finding solutions to a range of social, economic and environmental challenges. From improving economic performance and creating jobs to fostering strong education and fighting international tax evasion, we provide a unique forum and knowledge hub for data and analysis, exchange of experiences, best-practice sharing, and advice on public policies and international standard-setting
  • 外務省の経済協力開発機構 (OECD) のページからの概要は以下の通りです。
  • 概要
    1. 沿革: 1948年,米国による戦後の欧州復興支援策であるマーシャル・プランの受入れ体制を整備するため,欧州経済協力機構(OEEC)がパリに設立されました。その後,欧州経済の復興に伴い,欧州と北米が対等のパートナーとして自由主義経済の発展のために協力を行う機構としてOEECは発展的に改組され,1961年に経済協力開発機構(OECD:Organisation for Economic Co-operation and Development)が設立されました。日本は1964年に,原加盟国以外で初めて,また,非欧米諸国として初めて加盟しました。
    2. 加盟国(以下の36か国)
      1. 原加盟国:オーストリア,ベルギー,デンマーク,仏,独,ギリシャ,アイスランド,アイルランド,伊,ルクセンブルク,オランダ,ノルウェー,ポルトガル,スペイン,スウェーデン,スイス,トルコ,英,米,カナダ
      2. その後の加盟国:日本(1964年),フィンランド(1969年),豪(1971年),ニュージーランド(1973年),メキシコ(1994年),チェコ(1995年),ハンガリー,ポーランド,韓国(以上1996年),スロバキア(2000年),チリ,スロベニア,イスラエル,エストニア(以上2010年),ラトビア(2016年),リトアニア(2018年)((注)コロンビアが国内批准手続中(2018年11月現在))
    3. 目的
      1. 経済成長:加盟国の財政金融上の安定を維持しつつ,できる限り高度の経済と雇用,生活水準の向上の達成を図り,もって世界経済の発展に貢献すること。
      2. 開発:経済発展の途上にある地域の健全な経済成長に貢献すること。
      3. 貿易:多角的・無差別な世界貿易の拡大に寄与すること。
    4. 特色
      OECDは,1,700名を超える専門家を抱える世界最大のシンク・タンクであり,経済・社会の幅広い分野において多岐にわたる活動を行っている国際機関です。
  • Google Open Data には、OECD Factbook 2013 が掲載されています。

1.2 OECD Data

OECD Data からいくつかの方法で、データにアクセスできます。

  • Search Box: polulation(人口), trade(貿易), ODA(開発援助), environment(環境), Co2(二酸化炭素)などと入れてみてください。すると、膨大な、リストとともに、左に、Filter by type, Filter by topic(次項参照), Sort results などと、絞り込み方法が、現れます。ここから絞り込むことになります。
  • Browse by Topic: Agriculture(農業), Development(開発), Economy(経済), Education(教育), Energy(エネルギー), Finance(金融), Govetnment(政府), Health(健康), Innovation and Technology(イノベーションと技術), Job(職), Society(社会)から関連するトピックを選択します。[Filter by topic と同じ項目]
  • Browse by Country: 43ヶ国から選択します。
  • Catalogue of OECD databases: Search Box, Browse by Topic, Bowse by Country から選べないときは、このリストを見ます。
  • Featured Chars, Latest News, Statistical Resources とあり、最後の項目が、Database Access, Statistical Tools と、Developer API となっています。Statistical Tools と、Developer API はこれらの解説で、必要なときに見れば良いでしょう。重要なのは、Database Access でこれにより、OECD.Stat にアクセスします。

1.3 OECD.Stat

膨大なデータベースにアクセスし、その簡単な表やグラフや情報を表示し、Download(表やグラフの取得)ができます。

  • OECD.Stat User Guide: 使い方の詳しい説明があります。
  • 左の Theme(テーマ)や Popular Queries(人気トピック)メニューから選択し、選択すると、真ん中に、データベース名と、表が表示され、右に、情報がでます。Cusomize などで、変数をある程度、限れば、グラフも表示することができ、ここから、Download もできるようになっています。User Guide を見てください。あとで例を書きます。
  • R Package OECDvignettes の最後に、 Alternative data-acquisition strategy として、出力を Export menu から、Excel, csv, PC-axis, API, SDMX (XML) とある、5番目の選択肢を利用する方法を説明し、例を挙げています。以下のデータ入手方法の説明がついています。
    If one does not know exactly what data one is looking for, or if a data set contains e.g. a large number of breakdowns, it is often easier to first explore the data on the OECD stats website and then use the oecd package to make the data acquisition programmatic and reproducible. The workflow would then be as follows:
    1. Find the data set and apply relevant filters on the OECD website.
    2. Select “Export -> SDMX (XML)”
    3. Copy the generated filter expression (which follows directly after the data set name, see screenshot below).
    4. Insert this expression as the value to the filter argument of the get_dataset function.
library(OECD)
df <- get_dataset("REGION_INNOVATION",
"1+2.BEL+BE1+BE2+BE3+BEZZ.PCT_BIOTECH.ALL+AVG.2013+2014+2015")
head(df)

1.4 Information on R Package OECD

R の Package OECD でデータを入手することも可能です。vignettes は、R Studio の Help に、OECD を入力して見ることもできます。わかりやすい説明とともに、unemploument に関するがあります。

1.4.1 Description:

  • Package: OECD
  • Version: 0.2.4
  • Date: 2019-10-14
  • Title: OECD: Search and Extract Data from the OECD
  • Author: Eric Persson [aut, cre]
  • Maintainer: Eric Persson <expersso5 at gmail.com>
  • Description: Search and extract data from the Organization for Economic Cooperation and Development (OECD).
  • License: CC0
  • Reference Manual: OECD.pdf
  • Vignettes: Reproducible and programmatic access to OECD data

Commands

get_datasets で データベースのリストを入手し、search_dataset で必要な、データを探し、get_data_structure で当該データの構造を調べ、必要に応じて、その一部を選択して get_dataset の Filter 機能も用いて、データを入手します。必要に応じて、browse_metadata によりデータの変数や定義など内容を調べることができます。

  • browse_metadata: Browse the metadata related to a series.
    • Eg. browse_metadata("DUR_D"): Web Browser が立ち上がります。
  • get_dataset: Download OECD data sets.
    • Eg. df <- get_dataset("EPL_OV"): Data Frame(データフレーム)を入手します。
  • get_datasets: Get a data frame with information on all available datasets.
    • Eg. dataset_list <- get_datasets(): Data List を、Data Frame(データフレーム)形式で入手します。
  • get_data_structure: Get the data structure of a dataset.
    • Eg. get_data_structure("DUR_D"): データ構造を、List 形式で入手します。
  • search_dataset: Search codes and descriptions of available OECD series
    • Eg. search_dataset("employment", dataset_list): get_datasets() で入手した、Data Frame から、Key Word で、関連するデータを抽出します。

1.4.2 List of Datasets

install.packages("OECD")
library(OECD)
dataset_list <- get_datasets()
dataset_list

vignettes には、unemployment(失業統計)分野をさがし、リストの 93 番目の、DUR_I, the duration of unemployment の分析があります。

2. Examples of ODA - 政府開発援助

朝日新聞 2020年03月21日 朝刊の「いちからわかる! 日本の途上国援助は世界4位なんだね 」に、主要国のODA実績額(2018年から、利率や返済期間、援助内容も考慮した新たな実質的な計算方法に変更)の推移のグラフがあり、支出先トップ3として、2018年のデータとして、インド、バングラデシュ、ベトナムとあった。グラフは最大の援助国、米国、ドイツ、英国、日本の中で、日本がトップだった、2000年から始めている。ソースは OECD。もう少し前からの、推移など、見てみることにした。「1位だったけど下がっていて、政策も変わってきたよ」とあり、内容も興味深い。

2.1 記事要点

  • 開発協力白書(2019年版)「日本の国際協力 世界を結び、未来を紡ぐ」による。要約版
  • p.10 図表 I-3 「主要 DAC 諸国の政府開発援助実績の推移」
  • 白書によると、経済協力開発機構(OECD)の委員会が算出した18年の援助実績額で、日本は約141億6352万ドル(約1兆5642億円)。米国、ドイツ、英国に次ぐ4位だった。
  • 日本も戦後、海外からの援助を受けて経済成長して、1954年からは支援(しえん)する側に回った
  • 日本は89年に国別で初めて1位になった。しかし2001年から順位が下がっていった。19年度のODA予算は、5566億円。ピーク時の97年度の1兆1687億円の約半分の規模だ(いずれも当初予算)。
  • 提示されたグラフは、2000-2018年の、米国・ドイツ・英国・日本、4ヶ国版、全体を見てみたい。

2.2 ODA (Official Development Assistance(政府開発援助))

Development Aid 開発援助は、OECD の一つの柱でもあり、Topic から Development を選択すると、UN の Sustainable Development Goals (SDGs)も、含めて、関連の情報を、見ることができます。

2.3 Data の取得

いくつかのデータ取得方法を紹介します。

2.3.1 Search at OECD Data

  1. OECD Data の Search Box に、ODA と入れます。
  2. Showing 343 results for “ODA” と膨大なリストが出ます。
  3. 一番上の Distribution of net ODA を選択。Distribution of net ODA Least developed countries, Million US dollars, 2000 – 2018 が表示されます。リストの最初の5つどれを選択しても、このページになり、左のメニューからこの5つのどれかを選ぶことができます。
  4. Countries: Highlighted Countries で 右の、G7 Countries を選び、右下の、Show baseline: DAC countries(支援国合計基準線)のチェックを外す。
  5. Perspectives: Unspecified(すべて)とする。最初は、Least Developing Countries になっている。
  6. Share から、embed code とすると、下のようなグラフを添付できます。
  7. Download から、Selected Data Only を選択すると、DP_LIVE_28032020124154065.csv というデータが入手できます。directory data に入れておきます。Full Indicator Data を選択すると、1960年からのデータを入手することができます。
dp_live <- read.table("data/DP_LIVE_28032020124154065.csv", header=TRUE, sep=",")
head(dp_live)

Least Developing Countries: 2000-2018 最貧国援助

Unspecified: 2000-2018 すべて

Least Developing Countries: 1980-2018 最貧国援助

Unspecified: 1980年からの場合 すべて

  • 3ステップ目で表示されたリストの下のほうにいくと、アイコンがデータベースのものにかわり、Detailed aid statistics ODA Official development: assistance: disbursements などが現れます。このページにアクセスすると、下の大きな表があらわれ、その上に、Data にアクセスがあるので、それを選択します。
  • Aid (ODA) disbursements to countries and regions [DAC2a] が現れます。

2.3.2 OECD.Stat

  1. OECD.Stat にアクセスします。OECD Data のページから右下の、Database Access を選択することも可能です。
  2. 左のメニューの、Data by themeDevelopment の、Flows by Provider の、Total flows by donor (ODA+OOF+Private) [DAC1] を選択します。
  3. 左のメニューの、Data by themeDevelopment の、Flows by Provider and Recipients の Aid (ODA) disbursements to countries and regions [DAC2a] は、先ほどリストから選択したものと同じです。
  4. [DAC2a] を使いましょう。(上の Pulldown menu の Draw Chart から Line Graph を選択。項目が多過ぎて表示できないと出ます。左上の <<Back to table で、表に戻ることができます。)
  5. Customise から、下の選択をし、View を選択します。
  • Recipient: Unselect All を選択してから、All Recipients Total を選択します。
  • Donor: Unselect All を選択してから、G7 Countries の7ヶ国だけを選択します。
  • Aid type: Unselect All を選択してから、Total を選択します。
  • Select date range: 2000-2018 を選択します。19年とすることも可能です。
  • Layout: Donor(支援国)を Row(行)に、Recipent(受給国)を Page にしておくと、支援国がすべて現れるグラフも表示できます。
  • Table Option: で code と full description 両方を表示にしておくと、Donor の code もわかります。
  1. Export の SDMX (XML) を選択し、SDMX DATA URL をとります。
  2. rsdmx package でデータを入手することができます。
library(rsdmx)
dac2a_url <- "https://stats.oecd.org/restsdmx/sdmx.ashx/GetData/TABLE2A/10200.301+4+5+6+701+12+302.1.201.A+D/all?startTime=2000&endTime=2018"
dac2a_dataset <- readSDMX(dac2a_url)
dac2a_df <- as.data.frame(dac2a_dataset)
head(dac2a_df)
  • SDMX の情報を見ればわかるように、startTime などを変えれば、違ったデータも取得できます。なお、一番古いものは、1960年です。
  • 10200 は、支援国の合計のみ表示、国名は、Code(301: Canada, 4:France, 5:Germany, 6:Italy, 701:Japan, 12:UK, 302:US)、 A は、A, Current Prices, D は、Constant Prices, で入っています。
  • Meta Data の Help も助けになります。

2.3.3 OECD Package

library(OECD)
dataset_list <- get_datasets()
dataset_list
oda <- search_dataset("ODA", data = dataset_list)

どの Country(国)などが、どの Country を援助しているかなどがリストされます。 最初の、41 TABLE2A, Aid (ODA) disbursements to countries and regions [DAC2a] は、どの国や地域を援助しているか、二番目の、121 TABLE5, Aid (ODA) by sector and donor [DAC5] は、援助をしている国、団体です。

すでに、データを見てきましたから、どれか見当がつくかたもおられるかもしれませんが、わからないときは、get_data_structure で、データの構造をみます。特に、最初に、必ず、VAR_DESC がありますから、そのリストをとってみます。

library(tidyverse)
## ─ Attaching packages ───────────────────────────── tidyverse 1.3.0 ─
## ✓ ggplot2 3.3.0     ✓ purrr   0.3.3
## ✓ tibble  2.1.3     ✓ dplyr   0.8.5
## ✓ tidyr   1.0.2     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ─ Conflicts ─────────────────────────────── tidyverse_conflicts() ─
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
var_desc <- function(x){get_data_structure(oda$id[x])$VAR_DESC}
oda_var_desc <- 1:nrow(oda) %>% map(var_desc)
oda_var_desc
## [[1]]
##                 id        description
## 1        RECIPIENT          Recipient
## 2            DONOR              Donor
## 3             PART               Part
## 4          AIDTYPE           Aid type
## 5         DATATYPE        Amount type
## 6             TIME               Year
## 7        OBS_VALUE  Observation Value
## 8      TIME_FORMAT        Time Format
## 9       OBS_STATUS Observation Status
## 10            UNIT               Unit
## 11       POWERCODE    Unit multiplier
## 12 REFERENCEPERIOD   Reference period
## 
## [[2]]
##                 id        description
## 1            DONOR              Donor
## 2           SECTOR             Sector
## 3          AIDTYPE           Aid type
## 4           AMOUNT        Amount type
## 5             TIME               Year
## 6        OBS_VALUE  Observation Value
## 7      TIME_FORMAT        Time Format
## 8       OBS_STATUS Observation Status
## 9             UNIT               Unit
## 10       POWERCODE    Unit multiplier
## 11 REFERENCEPERIOD   Reference period
## 
## [[3]]
##                 id        description
## 1        DAC_DONOR              Donor
## 2             PART               Part
## 3      TRANSACTYPE           Aid type
## 4            FLOWS         Fund flows
## 5         DATATYPE        Amount type
## 6             TIME               Year
## 7        OBS_VALUE  Observation Value
## 8      TIME_FORMAT        Time Format
## 9       OBS_STATUS Observation Status
## 10            UNIT               Unit
## 11       POWERCODE    Unit multiplier
## 12 REFERENCEPERIOD   Reference period
## 
## [[4]]
##                 id        description
## 1        RECIPIENT          Recipient
## 2            DONOR              Donor
## 3             PART               Part
## 4          AIDTYPE           Aid type
## 5         DATATYPE        Amount type
## 6             TIME               Year
## 7        OBS_VALUE  Observation Value
## 8      TIME_FORMAT        Time Format
## 9       OBS_STATUS Observation Status
## 10            UNIT               Unit
## 11       POWERCODE    Unit multiplier
## 12 REFERENCEPERIOD   Reference period
## 
## [[5]]
##                 id        description
## 1        DAC_DONOR              Donor
## 2      TYINGSTATUS       Tying status
## 3          AIDTYPE           Aid type
## 4             TIME               Year
## 5        OBS_VALUE  Observation Value
## 6      TIME_FORMAT        Time Format
## 7       OBS_STATUS Observation Status
## 8             UNIT               Unit
## 9        POWERCODE    Unit multiplier
## 10 REFERENCEPERIOD   Reference period
## 
## [[6]]
##                 id        description
## 1        RECIPIENT          Recipient
## 2            DONOR              Donor
## 3          AIDTYPE           Aid type
## 4             PART               Part
## 5       AMOUNTTYPE        Amount type
## 6             TIME               Year
## 7        OBS_VALUE  Observation Value
## 8      TIME_FORMAT        Time Format
## 9       OBS_STATUS Observation Status
## 10            UNIT               Unit
## 11       POWERCODE    Unit multiplier
## 12 REFERENCEPERIOD   Reference period
## 
## [[7]]
##            id        description
## 1   INDICATOR          Indicator
## 2     MEASURE            Measure
## 3    LOCATION            Country
## 4   OBS_VALUE  Observation Value
## 5 TIME_FORMAT        Time Format
## 6  OBS_STATUS Observation Status
## 
## [[8]]
##            id        description
## 1   INDICATOR          Indicator
## 2        TIME               Time
## 3   OBS_VALUE  Observation Value
## 4 TIME_FORMAT        Time Format
## 5  OBS_STATUS Observation Status
## 
## [[9]]
##            id        description
## 1   INDICATOR          Indicator
## 2        TIME               Time
## 3   OBS_VALUE  Observation Value
## 4 TIME_FORMAT        Time Format
## 5  OBS_STATUS Observation Status
## 
## [[10]]
##                 id        description
## 1            DONOR              Donor
## 2        RECIPIENT          Recipient
## 3           SECTOR             Sector
## 4             TIME               Year
## 5        OBS_VALUE  Observation Value
## 6      TIME_FORMAT        Time Format
## 7       OBS_STATUS Observation Status
## 8             UNIT               Unit
## 9        POWERCODE    Unit multiplier
## 10 REFERENCEPERIOD   Reference period
## 
## [[11]]
##            id        description
## 1   INDICATOR          Indicator
## 2        TIME               Time
## 3   OBS_VALUE  Observation Value
## 4 TIME_FORMAT        Time Format
## 5  OBS_STATUS Observation Status
## 
## [[12]]
##            id        description
## 1   INDICATOR          Indicator
## 2        TIME               Time
## 3   OBS_VALUE  Observation Value
## 4 TIME_FORMAT        Time Format
## 5  OBS_STATUS Observation Status
## 
## [[13]]
##                 id        description
## 1        RECIPIENT          Recipient
## 2            DONOR              Donor
## 3             PART               Part
## 4             TIME               Year
## 5        OBS_VALUE  Observation Value
## 6      TIME_FORMAT        Time Format
## 7       OBS_STATUS Observation Status
## 8             UNIT               Unit
## 9        POWERCODE    Unit multiplier
## 10 REFERENCEPERIOD   Reference period
  • 1番目の TABLE2A を入手します。
  • Structure を調べておきます。
  • df <- get_dataset(dataset = table2a) は少し時間がかかります。
  • table2a_structure$DONOR を使って、国 Code と国名をマッチさせます。
table2a <- "TABLE2A"
table2a_structure <- get_data_structure(table2a)
str(table2a_structure, max.level = 1)
## List of 12
##  $ VAR_DESC       :'data.frame': 12 obs. of  2 variables:
##  $ RECIPIENT      :'data.frame': 283 obs. of  2 variables:
##  $ DONOR          :'data.frame': 147 obs. of  2 variables:
##  $ PART           :'data.frame': 2 obs. of  2 variables:
##  $ AIDTYPE        :'data.frame': 24 obs. of  2 variables:
##  $ DATATYPE       :'data.frame': 2 obs. of  2 variables:
##  $ TIME           :'data.frame': 59 obs. of  2 variables:
##  $ OBS_STATUS     :'data.frame': 15 obs. of  2 variables:
##  $ UNIT           :'data.frame': 316 obs. of  2 variables:
##  $ POWERCODE      :'data.frame': 32 obs. of  2 variables:
##  $ REFERENCEPERIOD:'data.frame': 96 obs. of  2 variables:
##  $ TIME_FORMAT    :'data.frame': 5 obs. of  2 variables:
str(table2a_structure)
## List of 12
##  $ VAR_DESC       :'data.frame': 12 obs. of  2 variables:
##   ..$ id         : chr [1:12] "RECIPIENT" "DONOR" "PART" "AIDTYPE" ...
##   ..$ description: chr [1:12] "Recipient" "Donor" "Part" "Aid type" ...
##  $ RECIPIENT      :'data.frame': 283 obs. of  2 variables:
##   ..$ id   : chr [1:283] "10200" "10100" "10010" "71" ...
##   ..$ label: chr [1:283] "All Recipients, Total" "Developing Countries, Total" "Europe, Total" "Albania" ...
##  $ DONOR          :'data.frame': 147 obs. of  2 variables:
##   ..$ id   : chr [1:147] "20005" "20001" "801" "1" ...
##   ..$ label: chr [1:147] "Official Donors, Total" "DAC Countries, Total" "Australia" "Austria" ...
##  $ PART           :'data.frame': 2 obs. of  2 variables:
##   ..$ id   : chr [1:2] "1" "2"
##   ..$ label: chr [1:2] "1 : Part I - Developing Countries" "2 : Part II - Countries in Transition"
##  $ AIDTYPE        :'data.frame': 24 obs. of  2 variables:
##   ..$ id   : chr [1:24] "201" "212" "221" "208" ...
##   ..$ label: chr [1:24] "Grants, Total" "Grants: Debt Forgiveness" "Grants: Other Debt Grants" "AF/Interest Subsidies" ...
##  $ DATATYPE       :'data.frame': 2 obs. of  2 variables:
##   ..$ id   : chr [1:2] "A" "D"
##   ..$ label: chr [1:2] "Current Prices" "Constant Prices"
##  $ TIME           :'data.frame': 59 obs. of  2 variables:
##   ..$ id   : chr [1:59] "1960" "1961" "1962" "1963" ...
##   ..$ label: chr [1:59] "1960" "1961" "1962" "1963" ...
##  $ OBS_STATUS     :'data.frame': 15 obs. of  2 variables:
##   ..$ id   : chr [1:15] "B" "C" "D" "E" ...
##   ..$ label: chr [1:15] "Break" "Non-publishable and confidential value" "Difference in methodology" "Estimated value" ...
##  $ UNIT           :'data.frame': 316 obs. of  2 variables:
##   ..$ id   : chr [1:316] "1" "GRWH" "AVGRW" "IDX" ...
##   ..$ label: chr [1:316] "RATIOS" "Growth rate" "Average growth rate" "Index" ...
##  $ POWERCODE      :'data.frame': 32 obs. of  2 variables:
##   ..$ id   : chr [1:32] "0" "1" "2" "3" ...
##   ..$ label: chr [1:32] "Units" "Tens" "Hundreds" "Thousands" ...
##  $ REFERENCEPERIOD:'data.frame': 96 obs. of  2 variables:
##   ..$ id   : chr [1:96] "2013_100" "2012_100" "2011_100" "2010_100" ...
##   ..$ label: chr [1:96] "2013=100" "2012=100" "2011=100" "2010=100" ...
##  $ TIME_FORMAT    :'data.frame': 5 obs. of  2 variables:
##   ..$ id   : chr [1:5] "P1Y" "P1M" "P3M" "P6M" ...
##   ..$ label: chr [1:5] "Annual" "Monthly" "Quarterly" "Half-yearly" ...
table2a_structure$VAR_DESC
table2a_structure$RECIPIENT
table2a_structure$DONOR
table2a_structure$AIDTYPE
# Set G7 Countries
country <- c("Canada", "Germany", "France", "United Kingdom", "Italy", "Japan", "United States")
# The following is possible.
# country <- c("301","4","5","6","701","12","302")
df <- get_dataset(dataset = table2a)
head(df)
str(df)
## Classes 'tbl_df', 'tbl' and 'data.frame':    1000000 obs. of  11 variables:
##  $ RECIPIENT      : chr  "10100" "10100" "10100" "10100" ...
##  $ DONOR          : chr  "20005" "20005" "20005" "20005" ...
##  $ PART           : chr  "1" "1" "1" "1" ...
##  $ AIDTYPE        : chr  "201" "201" "201" "201" ...
##  $ DATATYPE       : chr  "A" "A" "A" "A" ...
##  $ TIME_FORMAT    : chr  "P1Y" "P1Y" "P1Y" "P1Y" ...
##  $ UNIT           : chr  "USD" "USD" "USD" "USD" ...
##  $ POWERCODE      : chr  "6" "6" "6" "6" ...
##  $ REFERENCEPERIOD: chr  NA NA NA NA ...
##  $ obsTime        : chr  "1960" "1961" "1962" "1963" ...
##  $ obsValue       : num  3813 4133 4240 4211 4065 ...
donor_list <- table2a_structure$DONOR
names(donor_list) <- c("DONOR", "Country")
dff <- left_join(df, donor_list)
## Joining, by = "DONOR"
head(dff)
df <- get_dataset(dataset = table2a)
head(df)
str(table2a_structure)
## List of 12
##  $ VAR_DESC       :'data.frame': 12 obs. of  2 variables:
##   ..$ id         : chr [1:12] "RECIPIENT" "DONOR" "PART" "AIDTYPE" ...
##   ..$ description: chr [1:12] "Recipient" "Donor" "Part" "Aid type" ...
##  $ RECIPIENT      :'data.frame': 283 obs. of  2 variables:
##   ..$ id   : chr [1:283] "10200" "10100" "10010" "71" ...
##   ..$ label: chr [1:283] "All Recipients, Total" "Developing Countries, Total" "Europe, Total" "Albania" ...
##  $ DONOR          :'data.frame': 147 obs. of  2 variables:
##   ..$ id   : chr [1:147] "20005" "20001" "801" "1" ...
##   ..$ label: chr [1:147] "Official Donors, Total" "DAC Countries, Total" "Australia" "Austria" ...
##  $ PART           :'data.frame': 2 obs. of  2 variables:
##   ..$ id   : chr [1:2] "1" "2"
##   ..$ label: chr [1:2] "1 : Part I - Developing Countries" "2 : Part II - Countries in Transition"
##  $ AIDTYPE        :'data.frame': 24 obs. of  2 variables:
##   ..$ id   : chr [1:24] "201" "212" "221" "208" ...
##   ..$ label: chr [1:24] "Grants, Total" "Grants: Debt Forgiveness" "Grants: Other Debt Grants" "AF/Interest Subsidies" ...
##  $ DATATYPE       :'data.frame': 2 obs. of  2 variables:
##   ..$ id   : chr [1:2] "A" "D"
##   ..$ label: chr [1:2] "Current Prices" "Constant Prices"
##  $ TIME           :'data.frame': 59 obs. of  2 variables:
##   ..$ id   : chr [1:59] "1960" "1961" "1962" "1963" ...
##   ..$ label: chr [1:59] "1960" "1961" "1962" "1963" ...
##  $ OBS_STATUS     :'data.frame': 15 obs. of  2 variables:
##   ..$ id   : chr [1:15] "B" "C" "D" "E" ...
##   ..$ label: chr [1:15] "Break" "Non-publishable and confidential value" "Difference in methodology" "Estimated value" ...
##  $ UNIT           :'data.frame': 316 obs. of  2 variables:
##   ..$ id   : chr [1:316] "1" "GRWH" "AVGRW" "IDX" ...
##   ..$ label: chr [1:316] "RATIOS" "Growth rate" "Average growth rate" "Index" ...
##  $ POWERCODE      :'data.frame': 32 obs. of  2 variables:
##   ..$ id   : chr [1:32] "0" "1" "2" "3" ...
##   ..$ label: chr [1:32] "Units" "Tens" "Hundreds" "Thousands" ...
##  $ REFERENCEPERIOD:'data.frame': 96 obs. of  2 variables:
##   ..$ id   : chr [1:96] "2013_100" "2012_100" "2011_100" "2010_100" ...
##   ..$ label: chr [1:96] "2013=100" "2012=100" "2011=100" "2010=100" ...
##  $ TIME_FORMAT    :'data.frame': 5 obs. of  2 variables:
##   ..$ id   : chr [1:5] "P1Y" "P1M" "P3M" "P6M" ...
##   ..$ label: chr [1:5] "Annual" "Monthly" "Quarterly" "Half-yearly" ...

2.4. Graphs

2.4.1 DP_LIVE_28032020124154065.csv

dp_live %>% ggplot(aes(x = TIME, y = Value)) + 
  geom_line(aes(color = LOCATION)) + 
  geom_point(aes(color = LOCATION))

2.4.2 OECD.Stat Data

DATATYPE: A, Current Prices

dac2a_df %>% group_by(DONOR) %>% filter(DATATYPE == "A") %>% select(DONOR, obsTime, obsValue) %>%
  ggplot(aes(x = obsTime, y = obsValue, group = DONOR)) + 
  geom_line(aes(color = DONOR)) + 
  geom_point(aes(color = DONOR))

DATATYPE: D, Constant Prices

dac2a_df %>% group_by(DONOR) %>% filter(DATATYPE == "D")  %>%
  ggplot(aes(x = obsTime, y = obsValue, group = DONOR)) + 
  geom_line(aes(color = DONOR)) + 
  geom_point(aes(color = DONOR))

2.4.3 OECD Package

dff %>% filter(RECIPIENT == "10100", AIDTYPE == "201", Country %in% country, DATATYPE == "A")  %>%
  ggplot(aes(x = obsTime, y = obsValue, group = Country)) + 
  geom_line(aes(color = Country)) + 
  geom_point(aes(color = Country)) + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
  labs(x = "Year", y = "US Dollar, Unit = 1 million USD")

3. Memorandom メモ

  • vignettes には、SDMX (XML) を、get_dataset() に代入して、データを取得する方法が書いてあったが、適切にできず、rsdmx Package を使用。
  • OECD.Stat の SDMX (XML) からデータを取得すると、Country が Code になってしまい、OECD Package などから入手したデータを用いれば、Country 名を入れられるが、直接そのデータを残す方法が見つからず。
  • OECD Package でデータを入手するとき、filter を試すが、あまりうまくいかない。