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()関数を使用する方法

コメントを追加する

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