R でデータのグループ化を実行する方法: 例付き
R でデータのグループ化を実行するには、次の 2 つの方法のいずれかを使用できます。
方法 1: Cut() 関数を使用する
library (dplyr) #perform binning with custom breaks df %>% mutate(new_bin = cut(variable_name, breaks=c(0, 10, 20, 30))) #perform binning with specific number of bins df %>% mutate(new_bin = cut(variable_name, breaks= 3 ))
方法 2: ntile() 関数を使用する
library (dplyr) #perform binning with specific number of bins df %>% mutate(new_bin = ntile(variable_name, n= 3 ))
次の例は、次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (points=c(4, 4, 7, 8, 12, 13, 15, 18, 22, 23, 23, 25),
assists=c(2, 5, 4, 7, 7, 8, 5, 4, 5, 11, 13, 8),
rebounds=c(7, 7, 4, 6, 3, 8, 9, 9, 12, 11, 8, 9))
#view head of data frame
head(df)
points assists rebounds
1 4 2 7
2 4 5 7
3 7 4 4
4 8 7 6
5 12 7 3
6 13 8 8
例 1: Cut() 関数を使用してデータのグループ化を実行する
次のコードは、特定のブレーク マークを含むCut()関数を使用して、 points変数でデータのグループ化を実行する方法を示しています。
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks=c(0, 10, 20, 30)))
points assists rebounds points_bin
1 4 2 7 (0.10]
2 4 5 7 (0.10]
3 7 4 4 (0.10]
4 8 7 6 (0.10]
5 12 7 3 (10.20]
6 13 8 8 (10.20]
7 15 5 9 (10.20]
8 18 4 9 (10.20]
9 22 5 12 (20.30]
10 23 11 11 (20.30]
11 23 13 8 (20.30]
12 25 8 9 (20.30]
データ フレームの各行は、ポイント列の値に基づいて 3 つのグループのいずれかに配置されていることに注意してください。
ポイントの列の最小値から最大値まで同じ幅のボックスを作成するために使用するジャンプの数を指定することもできます。
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks= 3 ))
points assists rebounds points_bin
1 4 2 7 (3.98.11]
2 4 5 7 (3.98.11]
3 7 4 4 (3.98.11]
4 8 7 6 (3.98.11]
5 12 7 3 (11.18]
6 13 8 8 (11.18]
7 15 5 9 (11.18]
8 18 4 9 (11.18]
9 22 5 12 (18.25]
10 23 11 11 (18.25]
11 23 13 8 (18.25]
12 25 8 9 (18.25]
例 2: ntile() 関数を使用してデータのグループ化を実行する
次のコードは、 ntile()関数を使用して特定の数のグループを結果として得て、 points変数でデータ グループ化を実行する方法を示しています。
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = ntile(points, n= 3 ))
points assists rebounds points_bin
1 4 2 7 1
2 4 5 7 1
3 7 4 4 1
4 8 7 6 1
5 12 7 3 2
6 13 8 8 2
7 15 5 9 2
8 18 4 9 2
9 22 5 12 3
10 23 11 11 3
11 23 13 8 3
12 25 8 9 3
各行には、ポイント列の値に基づいて 1 から 3 のボックスが割り当てられていることに注意してください。
ビンの範囲を示す間隔ではなく整数値を各行に表示したい場合は、 ntile()関数を使用するのが最適です。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。