knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)

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
# 国勢調査 データセット情報ページ URL
census <- estat(appId = keyring::key_get("estat-api"), 
                statsDataId = "https://www.e-stat.go.jp/dbview?sid=0003413949")
census

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

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

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

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

census |> 
  activate(tab)

# Or
census |> 
  activate(1)

キーをアクティブにすると当該キーのアイテム情報が表示されます. さらに,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

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

census <- census |>
  collect(n = "pop")
knitr::kable(census)


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