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を使用してインデックスによって列を選択する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です