R言語でクロス集計ができるパッケージ―エクセルとの比較―

今回は、エクセルと比較をして、R言語でクロス集計を行う方法をご紹介します。

クロス集計を使う目的

クロス集計は、データの傾向を様々な角度から把握するために行います。具体的には、縦軸と横軸を決めます。
※直感的に把握をしたいなら図を描くのも有効です。

使用するデータ

R言語に最初から登載されているiris(あやめ)データを使います。データは縦に150行、横に5列です。データサイエンティストにはおなじみのデータです。Sepalはがく片(花びらの根本にある緑色の葉)でPetalは花びらです。Lengthは長さ、Widthは幅。Speciesがあやめの種類で、setosa,versicolor,virsinicaの3種類があります。CSV(エクセル)で表示すると以下のような感じです。

今回は右から3列目のPetal.Length(花びらの長さ)を使います。

エクセルでクロス集計

上の図の表をマウスで選択し、挿入タブからピボットテーブルを選んでください。縦軸(行)にSpecies、横軸(列と値(個数を選択))にPetal.Lengthを入れます。少し見づらいかもしれませんが、setosa,versicolor,virsinicaの種類に応じて、長さの傾向が異なるとわかります。

次に、列フィールドからPetal.Lengthを削除し、値を「平均」にします。これで確かに、種類に応じて長さが異なることがわかりますよね。setosaは短く、virsinicahaは長い。

このように、いろいろと行・列を変更することで、データの傾向をつかみます。

R言語でクロス集計

R言語でクロス集計は簡単です。次の2行を入力するだけです。あまり知られていないですが、強力なパッケージがあります。「rpivotTable」です。※インストール要→install.packages("rpivotTable", dependencies = TRUE)
library(rpivotTable)
rpivotTable(iris)

そしてエクセルのときと同様に、縦軸(行)にSpecies、横軸にPetal.Lengthをマウスのドラッグ&ドロップで入れます。エクセルと比べて直感的に行なえますね。

すると・・・。

できました。エクセルの画面と同じです。次に、Petal.Lengthを列から元の場所に戻します(ドラッグ&ドロップ)。そして、左上のCountと書かれているところをクリックし、Averageに変更、その下をPetal.Lengthに設定します。

やはりエクセルと同じように、種類に応じて花びらの長さの平均値を出せました。

R言語とエクセルのクロス集計は、どちらが使いやすいか?

個人的には、R言語の方が直感的にクロス集計を操れると思います。データサイエンティストの作業は基本的にエクセルを使わないため、データサイエンティストを志望される方はR言語で実行すべきです。ただ、R言語をインストールしていないエクセルユーザーは、わざわざR言語でクロス集計を行う必要はないかもしれません。

スポンサードリンク
おすすめの記事