の続きです。
前回は政府統計の総合窓口(e-Stat)のサイトのAPIでデータを取得してデータフレームを作成しました。作業の最後のところで、データのデータフレームと品目名、データタイプ名を結合するのにファクターのlevels関数で結合しましたが、inner_join関数を使うともっと簡単にできそうなのでやってみます。
GET関数でAPIでデータを取得して、rawToChar関数とfromJSON関数を使ってデータをR言語で処理しやすいかたちにするところは同じです。
ここから、まずデータ表のデータフレームを作ります。
次に、品目名のデータフレームを作ります。
データタイプのデータタイプを作ります。
df_tableの@cat01がdf_hinmokuの@codeに対応しています。
inner_join関数でdf_tableとdf_hinmokuを結合します。
inner_join(データフレーム1, データフレーム2, by = c("変数1" = "変数2))という関数の構造です。データフレーム1とデータフレーム2を変数1と変数2の値が同じになるように結合します。
このdf3とdf_typeをinner_join関数で結合します。
これで必要なデータが一つにまとまりました。
@cat01は品目コード、@cat03はデータタイプのコード、@unit.xは単位、$はデータの値、@name.xは品目名、@name.yはデータタイプ名、@level.y, @unit.y, @parenCodeはいらないですね。
変数名に@がついていると処理が難しいのでcolnames関数で変数名を整えます。
必要な変数だけをselect関数で抜き出します。
str関数でdf3の構造を確認します。
hinmoku_codeとtype_codeを文字列型からファクター型に、valueを文字列型から数値型に変換します。
これで完成です。
今回は以上です。