tidyrを使った縦横変換

tidyrを使った縦横変換

顔妻です。

今回はtidyrを使ったデータテーブルの縦と横の持ち方変換についてです。SQLやdplyrを使って集計したはいいものの、この結果をそのまま見せるとどうしてもみにくかったりします。どうしても一般的なクロス集計表の見方と異なるのは不便ですので、これを見やすい形に変えてみましょう。また、あまり使わない人も多いと思いますので是非手を動かしながら試してみてください。

利用データの事前確認

sex age height weight
1 男性 20代 180 71
2 男性 30代 172 72
3 男性 40代 163 69
4 男性 50代 167 78
5 男性 60代 175 91
6 女性 20代 160 56
7 女性 30代 161 49
8 女性 40代 157 51
9 女性 50代 155 48
10 女性 60代 165 65

事前データの横変換

それでは上記データを一般的な分割表としてみやすいように横変換してみましょう。

クロス集計表としてみやすいか形式になりましたね。これなら、他の人にわかりやすく説明するための資料にするのが簡単そうです。

sex 20代 30代 40代 50代 60代
1 女性 160 161 157 155 165
2 男性 180 172 163 167 175

横変換したデータの縦変換

ログからクロス集計を作るときはあまりないシーンかもしれませんが、市場調査のデータはすでに横広がりの集計表になっていることも多いです。そんなデータを扱うときのために前項で実施した横変換のデータを縦変換に戻してみましょう。

sex age height
1 女性 20代 160
2 男性 20代 180
3 女性 30代 161
4 男性 30代 172
5 女性 40代 157
6 男性 40代 163
7 女性 50代 155
8 男性 50代 167
9 女性 60代 165
10 男性 60代 175

まとめ

いかがでしょうか?少し込み入った集計ができるようになってくると、縦横に変換を行いたくなるシーンがでてくると思います。また、縦横変換ができると集計のプロセスがとても簡便になると思います。挙動に少しクセがあると思いますが是非とも試してみてください。

Rカテゴリの最新記事