www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

国税局別の民間給与実態調査のデータの分析2 - R言語でデータフレームの形態を変更(横長型から縦長型に) - gather関数とspread関数

 

www.crosshyou.info

の続きです。

前回作成したデータフレーム, dfのはじめの数行をhead関数でみてみましょう。

f:id:cross_hyou:20201121180708p:plain

このように人数という値が何列にも配置されています。

横長型といえばいいのかな。。。

これを縦長型に変更してみたいと思います。

図で説明すると、

f:id:cross_hyou:20201121180931p:plain

となっているデータフレームに、下の図のように、

officeとninzuuいう新しい変数を作って、

officeにはsapporo, sendai, kantoshinetsuなどの変数名を格納し、

ninzuuには2083522などの値を格納します。

f:id:cross_hyou:20201121181308p:plain

tidyverseパッケージを読み込むとgather関数が利用できます。

この関数を使います。

まず、library関数でtidyverseを読み込みます。

f:id:cross_hyou:20201121182430p:plain

gather関数を使います。

gather(データフレーム, key = 元の変数名が入る新しい列名, value = 元のデータフレーム値が入る新しい列名, -valueに入れない変数名)

こんな構文です。

f:id:cross_hyou:20201121182905p:plain

gather関数は横長のデータフレームを縦長にします。

その反対がspread関数です。

spread(データフレーム, key = 新しく列名にしたい要素が入っている変数, value = keyに格納する要素が入っている変数)

という構文です。使ってみます。

f:id:cross_hyou:20201121183506p:plain

このgather関数とspread関数、正直言ってよくわかっていません。毎回、試行錯誤です。

今回は以上です。