crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別のパスポート発行数のデータ分析1 - R言語のtidyverseパッケージのread_csv関数でデータを読み込む。

今回は都道府県別の旅券統計のデータを分析してみます。

政府統計の総合窓口(www.e-stat.go.jp)からデータを取得します。

旅券統計 旅券統計(国内)一般旅券月別・都道府県別発行数 | 統計表・グラフ表示 | 政府統計の総合窓口 (e-stat.go.jp)

f:id:cross_hyou:20201210082836p:plain

データをダウンロードして、下図のようなCSVファイルにしました。

f:id:cross_hyou:20201210083719p:plain

11行目に変数名を加えたのと、年間合計の列とデータの入ってない列を削除しました。

このCSVファイルを今回は、tidyverseパッケージ(正確にはreadrパッケージ)のread_csv関数で読み込みます。

まず、library関数でtidyverseパッケージの読み込みです。

f:id:cross_hyou:20201210084801p:plain

read_csv関数でデータを読み込みます。

f:id:cross_hyou:20201210090201p:plain

11行目からデータが始まっているので、skip = 10としています。

NAのデータは***か-で表示されているので、na = c("***", "-")としています。

このCSVファイルはエンコードがUTF-8なので、locale = locale(encoding = "UTF-8")としています。でも、read_csv関数はデフォルトがUTF-8なので本当は必要ないようです。

str関数でデータがうまく読み込まれているかを見てみます。

f:id:cross_hyou:20201210090314p:plain

47 x 98 となっています。47は47都道府県ということですね。98がデータの年月です。

d201712は2017年12月です。

つまりこのデータは横に長いデータ構造です。

これを縦に長いデータ構造、pref(都道府県)、year(年月), issue(発行数)という3列のデータ構造に変換します。

tidyrパッケージのgather関数です。

f:id:cross_hyou:20201210091203p:plain

keyの列には横長データの列名が入ります。

valueの列には、-pref 以外のデータが入ります。

str関数で縦長になったか確認します。

f:id:cross_hyou:20201210091610p:plain

4559 x 3 と縦長になりました。

prefとyearを文字列型からファクター型に変換しておきます。as.factor関数を使います。

f:id:cross_hyou:20201210092017p:plain

ファクター型に変換できました。

今回は以上です。

 続きは、

 

www.crosshyou.info