Dplyr で ntile() 関数を使用する方法 (例付き)
R のdplyrパッケージのntile()関数を使用して、入力ベクトルをn個のビンに分割できます。
この関数は次の基本構文を使用します。
ntile(x, n)
金:
- x : 入力ベクトル
- n : コンパートメントの数
注:バケットのサイズは最大で1つ異なる場合があります。
次の例は、この関数を実際に使用する方法を示しています。
例 1: ベクトルで ntile() を使用する
次のコードは、 ntile()関数を使用して 11 要素のベクトルを 5 つの異なるバケットに分割する方法を示しています。
library (dplyr) #createvector x <- c(1, 3, 4, 6, 7, 8, 10, 13, 19, 22, 23) #break up vector into 5 buckets ntile(x, 5) [1] 1 1 1 2 2 3 3 4 4 5 5
結果から、元のベクトルの各要素が 5 つのバケットのいずれかに配置されたことがわかります。
最小値はバケット 1 に割り当てられ、最大値はバケット 5 に割り当てられます。
例えば:
- 1、3、4 の最小値がバケット1に割り当てられます。
- 最大値の 22 と 23 はバケット5に割り当てられます。
例 2: データ フレームでの ntile() の使用
R に、さまざまなバスケットボール選手が獲得したポイントを示す次のデータ フレームがあるとします。
#create data frame df <- data. frame (player=LETTERS[1:9], points=c(12, 19, 7, 22, 24, 28, 30, 19, 15)) #view data frame df player points 1 to 12 2 B 19 3 C 7 4 D 22 5 E 24 6 F 28 7 G 30 8:19 a.m. 9 I 15
次のコードは、 ntile()関数を使用して、得点に基づいて各プレーヤーを 3 つのバケットの 1 つに割り当てる新しい列をデータ フレームに作成する方法を示しています。
library (dplyr) #create new column that assigns players into buckets based on points df$bucket <- ntile(df$points, 3) #view updated data frame df player points bucket 1 to 12 1 2 B 19 2 3 C 7 1 4 D 22 2 5 E 24 3 6 F 28 3 7 G 30 3 8:19 2 9 I 15 1
新しいバケット列は、各プレーヤーに 1 から 3 までの値を割り当てます。
最も低いポイントを持つプレーヤーには1の値が与えられ、最も高いポイントを持つプレーヤーには3という値が与えられます。
追加リソース
次のチュートリアルでは、R の他の一般的な関数の使用方法について説明します。
dplyr で across() 関数を使用する方法
dplyrでrelocate()関数を使用する方法
dplyrでslice()関数を使用する方法