An open API service indexing awesome lists of open source software.

https://github.com/uchidamizuki/jpstat

R package to use e-Stat API, RESAS API, etc.
https://github.com/uchidamizuki/jpstat

estat estat-api r resas resas-api

Last synced: 6 months ago
JSON representation

R package to use e-Stat API, RESAS API, etc.

Awesome Lists containing this project

README

          

---
output: github_document
---

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

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

```{r setup, message=FALSE, warning=FALSE}
library(jpstat)
library(dplyr)
```

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

e-Statでは,統計表ごとに統計表ID (statsDataId) が付与されています.統計表IDは,
データセット情報ページ ([例1](https://www.e-stat.go.jp/stat-search/database?page=1&layout=datalist&toukei=00200521&tstat=000001011777&cycle=0&tclass1=000001011778&statdisp_id=0003410379&tclass2val=0)) や
統計表・グラフ表示ページ ([例2](https://www.e-stat.go.jp/dbview?sid=0003413949)) のURLからも取得することが可能です.

ここでは,[例2](https://www.e-stat.go.jp/dbview?sid=0003413949)に挙げた国勢調査データを対象として,
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
```

```{r,echo=FALSE}
# 国勢調査 データセット情報ページ URL
census <- estat(appId = keyring::key_get("estat-api"),
statsDataId = "https://www.e-stat.go.jp/dbview?sid=0003413949")
census
```

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

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

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

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

```{r}
census |>
activate(tab)

# Or
census |>
activate(1)
```

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

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

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

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

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

```{r}
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)
```

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

```{r}
census
```

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

```{r}
census <- census |>
collect(n = "pop")
knitr::kable(census)
```