⚠️There's a newer version (0.4.0) of this package. Take me there.

estatapi - 政府統計の総合窓口(e-Stat)のAPIを使うためのRパッケージ

English version of README is here

e-Stat APIとは

e-Statは日本の統計情報が集まっているポータルサイトです。e-StatにはAPIが用意されていて、ウェブサイト上でアカウントを登録すると使えるようになります。

事前準備

利用ガイドに従ってアプリケーションIDを取得してください。APIにアクセスする際は、appIdというパラメータに取得したアプリケーションIDを指定します。

インストール

CRAN上にはないので、devtools::install_github()を使ってください。

devtools::install_github("yutannihilation/estatapi")

使い方

現在、このパッケージではバージョン2.0のうち3つをサポートしています。各APIの詳しい解説やパラメータの指定の仕方、返ってくる結果の意味は、公式ドキュメントを参照してください。

統計表情報取得(estat_getStatsList()

提供されている統計表を検索します。この関数は、結果をtbl_df(dplyrのdata.framedata.frameとほぼ同じように扱える)として返します。

例えば、「チョコレート」というキーワードを含む統計を検索するときはsearchWordという引数にキーワードを指定して、以下のようにします。

appId <- "XXXXXXXXX"

estat_getStatsList(appId = appId, searchWord = "チョコレート")
#> Source: local data frame [166 x 19]
#> 
#>           @id STAT_NAME.@code      STAT_NAME.$ GOV_ORG.@code GOV_ORG.$                                STATISTICS_NAME TITLE.@no
#>         (chr)           (chr)            (chr)         (chr)     (chr)                                          (chr)     (chr)
#> 1  0000100087        00200572 全国物価統計調査         00200    総務省           平成9年全国物価統計調査 大規模店舗編       009
#> 2  0000100104        00200572 全国物価統計調査         00200    総務省           平成9年全国物価統計調査 小規模店舗編       009
#> 3  0000100125        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       007
#> 4  0000100126        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       008
#> 5  0000100127        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       009
#> 6  0000100128        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       010
#> 7  0000100129        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       011
#> 8  0000100130        00200572 全国物価統計調査         00200    総務省 平成9年全国物価統計調査 消費者物価地域差指数編       012
#> 9  0000100146        00200572 全国物価統計調査         00200    総務省          平成14年全国物価統計調査 大規模店舗編       009
#> 10 0000100162        00200572 全国物価統計調査         00200    総務省          平成14年全国物価統計調査 小規模店舗編       009
#> ..        ...             ...              ...           ...       ...                                            ...       ...
#> Variables not shown: TITLE.$ (chr), CYCLE (chr), SURVEY_DATE (chr), OPEN_DATE (chr), SMALL_AREA (chr), MAIN_CATEGORY.@code (chr),
#>   MAIN_CATEGORY.$ (chr), SUB_CATEGORY.@code (chr), SUB_CATEGORY.$ (chr), OVERALL_TOTAL_NUMBER (chr), UPDATED_DATE (chr), TITLE (chr)

メタ情報取得(getMetaInfo()

統計データのメタ情報を取得します。この関数は、結果をlistとして返します。listの各要素が、それぞれのデータ項目についてのメタ情報を含んだtbl_dfになっています。

例えば、0003103532というIDの統計に関するメタ情報を取得するには、statsDataIdという引数にIDを指定して、以下のようにします。

meta_info <- estat_getMetaInfo(appId = appId, statsDataId = "0003103532")

names(meta_info)
#> [1] "tab"   "cat01" "cat02" "area"  "time" 

meta_info$cat01
#> Source: local data frame [703 x 5]
#> 
#>        @code                              @name @level    @unit @parentCode
#>        (chr)                              (chr)  (chr)    (chr)       (chr)
#> 1  000100000           世帯数分布(抽出率調整)      1 一万分比          NA
#> 2  000200000                         集計世帯数      1     世帯          NA
#> 3  000300000                           世帯人員      1       人          NA
#> 4  000400000                       18歳未満人員      2       人   000300000
#> 5  000500000                       65歳以上人員      2       人   000300000
#> 6  000600000                 65歳以上無職者人員      3       人   000500000
#> 7  000700000                           有業人員      1       人          NA
#> 8  000800000                       世帯主の年齢      1       歳          NA
#> 9  000900000                             持家率      1       %          NA
#> 10 001000000 家賃・地代を支払っている世帯の割合      1       %          NA
#> ..       ...                                ...    ...      ...         ...

統計データ取得(getStatsData()

統計データを取得します。この関数は、結果をメタ情報と紐づけてtbl_dfとして返します。

ちなみに、必ず指定しなくてはいけないのはappIdstatsDataIdだけですが、それだけだとデータがかなり大きくなって取得に時間がかかります。cdCat01(分類事項01)などを指定して必要な項目だけに絞ることをおすすめします。他に絞り込みに指定できるパラメータについては公式ドキュメントを参照してください。

estat_getStatsData(
  appId = appId,
  statsDataId = "0003103532",
  cdCat01 = c("010800130","010800140")
)
#> Source: local data frame [12,176 x 13]
#> 
#>     @tab    @cat01 @cat02 @area      @time @unit     $ value tab_info       cat01_info                 cat02_info area_info  time_info
#>    (chr)     (chr)  (chr) (chr)      (chr) (chr) (chr) (dbl)    (chr)            (chr)                      (chr)     (chr)      (chr)
#> 1     01 010800130     03 00000 2015000909    円   326   326     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年9月
#> 2     01 010800130     03 00000 2015000808    円   212   212     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年8月
#> 3     01 010800130     03 00000 2015000707    円   213   213     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年7月
#> 4     01 010800130     03 00000 2015000606    円   268   268     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年6月
#> 5     01 010800130     03 00000 2015000505    円   286   286     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年5月
#> 6     01 010800130     03 00000 2015000404    円   334   334     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年4月
#> 7     01 010800130     03 00000 2015000303    円   530   530     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年3月
#> 8     01 010800130     03 00000 2015000202    円  1324  1324     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年2月
#> 9     01 010800130     03 00000 2015000101    円   559   559     金額 352 チョコレート 二人以上の世帯(2000年~)      全国  2015年1月
#> 10    01 010800130     03 00000 2014001212    円   548   548     金額 352 チョコレート 二人以上の世帯(2000年~)      全国 2014年12月
#> ..   ...       ...    ...   ...        ...   ...   ...   ...      ...              ...                        ...       ...        ...

limitで取得する最大のレコード数を、startPositionで取得を始めるレコードの位置を指定することもできます。とりあえず少しだけ抜き出して見たい場合や、少しずつデータを取ってきたい場合には便利です。

d1 <- estat_getStatsData(
        appId = appId, statsDataId = "0003103532", cdCat01 = c("010800130","010800140"),
        limit = 100
      )
#> There are more records; please rerun with startPosition=101

d2 <- estat_getStatsData(
        appId = appId, statsDataId = "0003103532", cdCat01 = c("010800130","010800140"),
        limit = 100,
        startPosition=101
      )
#> There are more records; please rerun with startPosition=201

d <- bind_rows(d1, d2)

Copy Link

Version

Down Chevron

Install

install.packages('estatapi')

Monthly Downloads

179

Version

0.2

License

MIT + file LICENSE

Maintainer

Last Published

March 27th, 2016

Functions in estatapi (0.2)