Rで層別集計

今回はRで層別集計する方法をご紹介します。

層別集計とは

層別集計とは、Excelで言うSUMIF関数のように、ある項目でグループ化して集計する方法です。
イメージとしては下図のようになります。
075

Rで層別集計をする方法

Rで層別集計するには、「tapply(集計対象,グループ時のキー,関数)」で実行できます。
関数は用途に合わせて使い分けてください。
下記のものをよく利用すると思います。

関数名 説明
sum 合計値を集計する
mean 平均値を集計する。
summary 最小値、第一四分位点、中央値、平均値、第三四分位点、最大値を集計する



では、Rのサンプルデータ「iris」を利用して、品種ごとに集計してみます。
なお「データセット名$列名」で、その列のデータを利用することができます。

result <- tapply(iris$Sepal.Length,iris$Species,summary) result

$setosa

Min. 1st Qu. Median Mean 3rd Qu. Max.

4.300 4.800 5.000 5.006 5.200 5.800

$versicolor

Min. 1st Qu. Median Mean 3rd Qu. Max.

4.900 5.600 5.900 5.936 6.300 7.000

$virginica

Min. 1st Qu. Median Mean 3rd Qu. Max.

4.900 6.225 6.500 6.588 6.900 7.900



数値だけではわかりにくいので、箱ひげ図にしてみましょう。
層別の集計結果を利用して、箱ひげ図を作成してみます。

result <- tapply(iris$Sepal.Length,iris$Species,summary)

boxplot(result)



作成された箱ひげ図
076
これで、どの種類がどのくらいの値なのか一目瞭然ですね。

最後に

層別集計を使えれば、わざわざExcelとかでデータを加工しなくても、R上だけで集計することができます。
Rはコマンドベースのため、とっつきにくいですが、だからこそ型にはまらず自由に指示を出すことができます。
自分で考えたことをいろいろ実行してみましょう!


コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA