R でデータを同じサイズのグループに分割する方法
R のggplot2パッケージのCut_number()関数を使用すると、ベクトルを同じサイズのグループに分割できます。
この関数は次の基本構文を使用します。
カット番号(x,n)
金:
- x:除算するデジタルベクトルの名前
- n:グループ数
次の例は、この関数を実際に使用する方法を示しています。
例: R でデータを同じサイズのグループに分割する方法
R に、12 人の異なるバスケットボール選手が獲得したポイントに関する情報を含む次のデータ フレームがあるとします。
#create data frame df <- data. frame (player=LETTERS[1:12], points=c(1, 2, 2, 2, 4, 5, 7, 9, 12, 14, 15, 22)) #view data frame df player points 1 to 1 2 B 2 3 C 2 4 D 2 5 E 4 6 F 5 7 G 7 8:9 a.m. 9 I 12 10 D 14 11K15 12 L 22
ggplot2パッケージのCut_number()関数を使用して、 points列の値に基づいてデータ フレームの各行を 3 つのグループのいずれかに分割するgroupという新しい列を作成できます。
library (ggplot2) #create new column that splits data into three equal sized groups based on points df$group <- cut_number(df$points, 3) #view updated data frame df player points group 1 To 1 [1,3.33] 2 B 2 [1,3.33] 3 C 2 [1,3.33] 4 D 2 [1,3.33] 5 E 4 (3.33.10] 6 F 5 (3.33.10] 7 G 7 (3.33.10] 8 A.M. 9 (3.33.10] 9 I 12 (10.22] 10 J 14 (10.22] 11 K 15 (10.22] 12 L 22 (10.22]
12 人のプレーヤーはそれぞれ、ポイント列に表示されている値に基づいて 3 つのグループのいずれかに配置されます。
結果から、3 つの異なるグループがあることがわかります。
- グループ 1: ポイントの値は 1 ~ 3.33 です。
- グループ 2: ポイントの値は 3.33 ~ 10 の間です。
- グループ 3: ポイントの値は 10 ~ 22 です。
各グループに 4 人のプレーヤーが配置されていることがわかります。
グループ列にグループを整数値として表示したい場合は、 cut_number()関数をas.numeric()関数でラップします。
library (ggplot2) #create new column that splits data into three equal sized groups based on points df$group <- as. numeric (cut_number(df$points, 3)) #view updated data frame df player points group 1 A 1 1 2 B 2 1 3 C 2 1 4 D 2 1 5 E 4 2 6 F 5 2 7 G 7 2 8:92 a.m. 9 I 12 3 10 D 14 3 11 K 15 3 12 L 22 3
新しいグループ列には、プレーヤーがどのグループに属しているかを示す値 1、2、および 3 が含まれるようになりました。
ここでも、各グループには 4 人のプレーヤーが含まれます。
注: ポイント列を 3 つ以上のグループに分割するには、 cut_number()関数の3 を別の数値に置き換えるだけです。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
Rでデータフレームを分割する方法
R でデータをトレーニング セットとテスト セットに分割する方法
R でデータのグループ化を実行する方法