【R】Rでクロス集計表を作成する

R

今回はRでクロス集計表を作成する方法を紹介します。

使用するデータセット

ggplot2に含まれるdiamondsデータを例として使用します。
中身も確認しておきましょう。

今回はクロス集計を行うため、数値データは扱わず、ダイヤモンドの色の品質を示す「color」と、ダイヤモンドのカットの質を示す「cut」を使用します。

クロス集計

総数のクロス集計

まずは単純集計のクロス表です。

Rでのクロス集計は
table(行, 列) で表現します。

ちなみに、colorはDが最も品質が良く、cutはIdealが最も品質が良いものを示しています。

割合のクロス集計

クロス集計を割合で表記する場合はprop.table()を使用して
prop.table(テーブル) の形で表現します。
「テーブル」の箇所に入るのは先ほど作成したクロス集計表です。

見やすくするために、tblという変数に先ほど作成したクロス集計表を代入して作成してみます。

これで全体に対する割合が0~1で表示されます。
%で表示する場合は100倍しましょう。

さらに、オプションをつけることで、列方向・行方向に対する割合も見ることができます。
行方向…prop.table(テーブル, 1)
列方向…prop.table(テーブル, 2)

まずは行方向(よこ方向)の割合を見てみましょう。

この場合、行方向にすべてを足すと100%になります。
例えば、右上の部分は、colorが「D」の中でcutが「Ideal」の割合は約41.83%という解釈です。

続いて、列方向(たて方向)も同様にやってみます。

今度は列方向に足すと100%になるような割合のクロス集計となりました。

おまけ:割合の表記は桁数を減らして見やすく!

今回はクロス集計表の説明のため、余計な関数は入れませんでしたが、その結果、数字ばかりで見づらかったかと思います。
round関数を組み合わせて桁数を減らすこともできるので、ぜひ使ってみてください。

書き方は
round(クロス集計表, 小数点以下の桁数) です。
小数点以下の桁数は四捨五入で表示されます。

今回の最後に使ったクロス集計表を、小数点以下1桁までの表示に変更してみます。

以上、クロス集計表の作り方の紹介でした!

コメント

タイトルとURLをコピーしました