Rで政府統計総合窓口(e-Stat)のAPIを操作する{estatapi}
があり、政府統計情報をR上で取り扱うにあたりめちゃくちゃ便利である。
しかし、何度もコードを叩いていると、appId
を何度も引数で指定するのがめんどくさく感じる。
最初にオブジェクトで置いて指定するのもいいが、結局各関数でお決まりの入力があるのがめんどくさい。
また、たまに実行しようとするときにそもそも自分のAPI IDをe-Statのウェブページに行って確認するがめんどくさい。
PC上に保存しておいても、結局どこかからコピペする手順がめんどくさい。
一度どこかに保存したらそれを参照してほしいと思った。
しかし、例えば.Rprofile
にappId
書き込んでもいいが、別の関数でかぶる可能性もあるので、使うときにだけ参照する場所に置いておきたい。
ということでappId
を一度設定すると各関数でappId
を指定しなくても良くなる{estatapi}
のラップ関数のパッケージを自分用につくったのでGithubにあげてみた。
ドキュメントは適当である。
{estatapi.appId}
remotes::install_github("indenkun/estatapi.appId")
使い方
set_appId()
で一度e-StatのAPP
IDを設定すると、{estatapi}
の各関数をラップした{estatapi.appId}
を実行するときにappId
を入力する必要がなくなる。
library(estatapi.appId) # 自分のAPP IDを入力 set_appId("XXX")
e-Stat
APIを操作する各関数の基本的な挙動はもともとの{estatapi}
と変わらない。
{estatapi}
と{estatapi.appId}
とのe-Stat
APIを操作する各関数の変更点は、{estatapi.appId}
では引数のappId
が一番最後になっており、既定値がset_appId()
で設定されて値になっている。
estat_getStatsList("チョコレート")
## # A tibble: 258 × 22
## `@id` STAT_…¹ GOV_ORG STATI…² TITLE CYCLE SURVE…³ OPEN_…⁴ SMALL…⁵ COLLE…⁶
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 00001000… 全国物… 総務省 平成9… 価格… - 199711 2007-0… 0 該当な…
## 2 00001001… 全国物… 総務省 平成9… 価格… - 199711 2007-0… 0 該当な…
## 3 00001001… 全国物… 総務省 平成9… 指数… - 199711 2007-0… 0 該当な…
## 4 00001001… 全国物… 総務省 平成9… 指数… - 199711 2007-0… 0 該当な…
## 5 00001001… 全国物… 総務省 平成9… 品目… - 199711 2007-0… 0 該当な…
## 6 00001001… 全国物… 総務省 平成9… 品目… - 199711 2007-0… 0 該当な…
## 7 00001001… 全国物… 総務省 平成9… 品目… - 199711 2007-0… 0 該当な…
## 8 00001001… 全国物… 総務省 平成9… 品目… - 199711 2007-0… 0 該当な…
## 9 00034481… 工業統… 経済産… 工業統… 品目… 年次 202001… 2022-0… 0 該当な…
## 10 00031265… 工業統… 経済産… 工業統… 品目… 年次 201301… 2015-0… 0 該当な…
## # … with 248 more rows, 12 more variables: MAIN_CATEGORY <chr>,
## # SUB_CATEGORY <chr>, OVERALL_TOTAL_NUMBER <chr>, UPDATED_DATE <chr>,
## # TABULATION_CATEGORY <chr>, TABULATION_SUB_CATEGORY1 <chr>,
## # DESCRIPTION <chr>, TABLE_CATEGORY <chr>, TABLE_NAME <chr>,
## # TABULATION_SUB_CATEGORY2 <chr>, TABLE_SUB_CATEGORY1 <chr>,
## # TABULATION_SUB_CATEGORY3 <chr>, and abbreviated variable names ¹STAT_NAME,
## # ²STATISTICS_NAME, ³SURVEY_DATE, ⁴OPEN_DATE, ⁵SMALL_AREA, ⁶COLLECT_AREA
ただし、appId
が各関数の実行時に指定されている場合には、入力された値が優先的に使用される。
appId
は{tools}
のR_user_dir()
指定されるユーザー設定ディレクトリ下のappId
ファイルに平文で保存される。
clear_appId()
を実行するとこのappId
ファイルが削除される。
設定したappId
はcheck_appId()
で確認できる。
これで毎回、appId
どこにやった問題が解決される気がする。