APIを用いたデータの収集(政府統計データ)

e-Stat(政府統計の総合窓口) は、日本の統計が閲覧できる政府統計ポータルサイトです.

出典:【総務省 ICTスキル総合習得教材】4-3(一部改変)

APIの取得
APIの取得
#install.packages('estatapi')
library(estatapi)
## このサービスは、政府統計総合窓口(e-Stat)のAPI機能を使用していますが、サービスの内容は国によって保証されたものではありません。
appID <- '3db4374342d9e5d72d21565c58aef8282adbca7e'

#e-Stat内を『消費者物価指数』で検索
estat_getStatsList(appId = appID, searchWord = '消費者物価指数')
## # A tibble: 10 × 20
##    `@id`     STAT_NAME GOV_ORG STATISTICS_NAME TITLE CYCLE SURVEY_DATE OPEN_DATE
##    <chr>     <chr>     <chr>   <chr>           <chr> <chr> <chr>       <chr>    
##  1 00000101… 社会・人… 総務省  都道府県データ… C … 年度… 0           2023-07-…
##  2 00000101… 社会・人… 総務省  都道府県データ… C … 年度… 0           2023-07-…
##  3 00000102… 社会・人… 総務省  都道府県データ… L … 年度… 0           2023-02-…
##  4 00000102… 社会・人… 総務省  都道府県データ… L … 年度… 0           2023-02-…
##  5 00020500… 消費者物… 総務省  平成17年基準消… 消費… -     0           2012-01-…
##  6 00030367… 消費者物… 総務省  平成22年基準消… 消費… -     0           2017-01-…
##  7 00031435… 消費者物… 総務省  2015年基準消費… 消費… -     0           2022-01-…
##  8 00034271… 消費者物… 総務省  2020年基準消費… 消費… -     0           2024-01-…
##  9 00034464… 景気動向… 内閣府  景気動向指数    個別… -     0           2023-12-…
## 10 00034464… 景気動向… 内閣府  景気動向指数    個別… -     0           2023-12-…
## # ℹ 12 more variables: SMALL_AREA <chr>, COLLECT_AREA <chr>,
## #   MAIN_CATEGORY <chr>, SUB_CATEGORY <chr>, OVERALL_TOTAL_NUMBER <chr>,
## #   UPDATED_DATE <chr>, TABULATION_CATEGORY <chr>,
## #   TABULATION_SUB_CATEGORY1 <chr>, TABULATION_CATEGORY_EXPLANATION <chr>,
## #   TABLE_NAME <chr>, DESCRIPTION <chr>, TABLE_EXPLANATION <chr>
#2015年基準消費者物価指数(statsDataId=0003143513)のデータ説明をdata_infoへ格納
data_info <- estat_getMetaInfo(
  appId       = appID,
  statsDataId = '0003143513')

#品目コードと地域コードを調べるため、cat01およびareaをRのデータフレームとして格納
di_cat01 <- data_info$cat01
di_area  <- data_info$area
#取得したコードを指定してe-Stat APIからデータを取得し、epdataに格納
epdata <- estat_getStatsData(
  appId       = appID,
  statsDataId = '0003143513', # 2015年基準消費者物価指数
  cdTab       = '1',          # 物価指数
  cdCat01     = '0056' ,      # 電気代
  cdArea      = c('01A01',    # 札幌市
                  '47A01'),   # 那覇市
  lvTime = '4',               # 月次データ
  cdTimeFrom = '2016')        # データ取得開始年
## Fetching record 1-144... (total: 144 records)
library(data.table)
fwrite(epdata, 'estat_icecream_9area_price.csv', sep = ',')
epdata
## # A tibble: 144 × 11
##    tab_code 表章項目 cat01_code `2015年基準品目` area_code `地域(2015年基準)`
##    <chr>    <chr>    <chr>      <chr>            <chr>     <chr>               
##  1 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  2 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  3 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  4 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  5 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  6 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  7 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  8 1        指数     0056       0056 電気代      01A01     01100 札幌市        
##  9 1        指数     0056       0056 電気代      01A01     01100 札幌市        
## 10 1        指数     0056       0056 電気代      01A01     01100 札幌市        
## # ℹ 134 more rows
## # ℹ 5 more variables: time_code <chr>, `時間軸(年・月)` <chr>, unit <chr>,
## #   value <dbl>, annotation <chr>