Rでグループごとの度数表を作成する方法
dplyrパッケージの次の関数を使用して、R でグループごとの度数表を作成できます。
library (dplyr) df %>% group_by (var1, var2) %>% summarize (Freq=n())
次の例は、この構文を実際に使用する方法を示しています。
例: グループごとに度数表を作成する
R に次のデータ フレームがあるとします。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'G', 'F', 'G', 'F', 'F', 'C'))
#view data frame
df
team position
1 AG
2 AG
3 AG
4 AF
5 BG
6 BF
7 BF
8 BC
チームごとにグループ化された各ポジションの頻度を示す頻度テーブルを作成するとします。
これを行うには、次の構文を使用できます。
library (dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by (team, position) %>%
summarize (Freq=n())
# A tibble: 5 x 3
# Groups: team [2]
team position Freq
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1
結果を解釈する方法は次のとおりです。
- チーム A の1 人の選手がポジション「F」に就きます。
- チーム A の3 人のプレーヤーがポジション「G」を持っています
- チーム B の1 人のプレーヤーがポジション「C」に就きます。
- チーム B の2 人のプレーヤーがポジション「F」を持っています
- チーム B の1 人のプレーヤーがポジション「G」に就きます。
summary()関数の変数名を変更することで、度数を含む列の名前を変更できることに注意してください。
たとえば、代わりに列の名前を「count」に変更できます。
library (dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by (team, position) %>%
summarize (count=n())
# A tibble: 5 x 3
# Groups: team [2]
team position count
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1
追加リソース
次のチュートリアルでは、dplyr で他の一般的な機能を実行する方法を説明します。
dplyr を使用して相対周波数を計算する方法
dplyr を使用して変数をグループ別に並べ替える方法
dplyrを使用してインデックスによって列を選択する方法