README-estat.md

e-Stat APIへのアクセス方法

library(jpstat)
library(dplyr)

jpstatでは,e-Stat APIのメタ情報取得 (getMetaInfo) と統計データ取得 (getStatsData) を用いて,統計表をダウンロードが可能です.

e-Statでは,統計表ごとに統計表ID (statsDataId) が付与されています.統計表IDは, データセット情報ページ (例1) や 統計表・グラフ表示ページ (例2) のURLからも取得することが可能です.

ここでは,例2に挙げた国勢調査データを対象として, 2010・2015年の東京都・大阪府における男女別人口を取得します.

まず,estat()関数に,appIdとデータセット情報ページなどのURLまたは統計表ID (statsDataId) を入力してメタ情報 (統計データの属性情報) を取得します.

# 国勢調査 データセット情報ページ URL
census <- estat(appId = "Your e-Stat appId", 
                statsDataId = "https://www.e-stat.go.jp/dbview?sid=0003413949")
census

#> # ☐ tab:   表章項目           [2] <code, name, level, unit>
#> # ☐ cat01: 男,女及び総数2015 [3] <code, name, level>
#> # ☐ area:  地域2015           [48] <code, name, level, parentCode>
#> # ☐ time:  時間軸(調査年)   [21] <code, name, level>
#> # 
#> # Please `activate()`.

当該データには,tabcat01area, timeの4種類の列 (以下,キーと呼びます) が存在します. それぞれのキーには以下の情報が記載されています.

  1. デフォルトでの列名 (tabなど)
  2. アイテム数 ([2]など)
  3. コード・名称などの属性 (<code, name, level, unit>など)

ここからは,それぞれのキーごとに列名・アイテム数・属性を変更する方法を説明します. それぞれのキーの情報を変更するためには,activate()関数を用いてキーを選択します.

例えば,以下のようにtabキーをアクティブにします.

census |> 
  activate(tab)
#> # ☒ tab:   表章項目           [2] <code, name, level, unit>
#> # ☐ cat01: 男,女及び総数2015 [3] <code, name, level>
#> # ☐ area:  地域2015           [48] <code, name, level, parentCode>
#> # ☐ time:  時間軸(調査年)   [21] <code, name, level>
#> # 
#> # A tibble: 2 × 4
#>   code  name     level unit           
#>   <chr> <chr>    <chr> <chr>          
#> 1 020   人口     ""    人             
#> 2 1120  人口性比 ""    女100人につき男

# Or
census |> 
  activate(1)
#> # ☒ tab:   表章項目           [2] <code, name, level, unit>
#> # ☐ cat01: 男,女及び総数2015 [3] <code, name, level>
#> # ☐ area:  地域2015           [48] <code, name, level, parentCode>
#> # ☐ time:  時間軸(調査年)   [21] <code, name, level>
#> # 
#> # A tibble: 2 × 4
#>   code  name     level unit           
#>   <chr> <chr>    <chr> <chr>          
#> 1 020   人口     ""    人             
#> 2 1120  人口性比 ""    女100人につき男

キーをアクティブにすると当該キーのアイテム情報が表示されます. さらに,filter()関数やselect()関数を用いてアイテム情報の絞り込みなどが可能です. ここでは,「人口」のみを選択します.

census <- census |> 
  activate(tab) |> 
  filter(name == "人口") |> 
  # アイテム数が1つのみであるため列を全て削除
  select()

次に,cat01の「男,女及び総数2015」を選択します.rekey()関数によってキーの名称cat01を変更することが可能です(ここではsex). キーの名称を変更することでデータダウンロード時の列名を指定ことができます. また,上と同様に属性の絞り込みを行います. ここでは,name列を選択します.

census <- census |> 
  activate(cat01) |>
  rekey("sex") |> 
  filter(name %in% c("男", "女")) |> 
  select(name)

上と同様に,area(「地域2015」)とtime(「時間軸(調査年)」)の名称変更・属性絞り込みを行います.

census <- census |> 
  activate(area) |> 
  rekey("pref") |> 
  filter(name %in% c("東京都", "大阪府")) |> 
  select(code, name) |> 

  activate(time) |> 
  rekey("year") |> 
  filter(name %in% c("2010年", "2015年")) |> 
  select(name) 

以上の操作により,以下のように列名・アイテム数・属性が変更できました.

census
#> # ☐ tab:  表章項目           [1] <>
#> # ☐ sex:  男,女及び総数2015 [2] <name>
#> # ☐ pref: 地域2015           [2] <code, name>
#> # ☒ year: 時間軸(調査年)   [2] <name>
#> # 
#> # A tibble: 2 × 1
#>   name  
#>   <chr> 
#> 1 2010年
#> 2 2015年

最後に,collect()関数を用いてデータをダウンロードします. collect()関数のnで値の名称を指定します.

census <- census |>
  collect(n = "pop")
#> The total number of data is 8.
knitr::kable(census)

| sex_name | pref_code | pref_name | year_name | pop | |:---------|:----------|:----------|:----------|:--------| | 男 | 13000 | 東京都 | 2010年 | 6512110 | | 男 | 13000 | 東京都 | 2015年 | 6666690 | | 男 | 27000 | 大阪府 | 2010年 | 4285566 | | 男 | 27000 | 大阪府 | 2015年 | 4256049 | | 女 | 13000 | 東京都 | 2010年 | 6647278 | | 女 | 13000 | 東京都 | 2015年 | 6848581 | | 女 | 27000 | 大阪府 | 2010年 | 4579679 | | 女 | 27000 | 大阪府 | 2015年 | 4583420 |



UchidaMizuki/japanstat documentation built on April 11, 2024, 8:40 a.m.