Comment utiliser la fonction ntile() dans dplyr (avec exemples)



Vous pouvez utiliser la fonction ntile() du package dplyr dans R pour diviser un vecteur d’entrée en n compartiments.

Cette fonction utilise la syntaxe de base suivante :

ntile(x, n)

où:

  • x : vecteur d’entrée
  • n : Nombre de compartiments

Remarque : La taille des seaux peut différer jusqu’à un.

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Exemple 1 : utilisez ntile() avec un vecteur

Le code suivant montre comment utiliser la fonction ntile() pour diviser un vecteur de 11 éléments en 5 compartiments différents :

library(dplyr)

#create vector
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

À partir du résultat, nous pouvons voir que chaque élément du vecteur d’origine a été placé dans l’un des cinq compartiments.

Les plus petites valeurs sont attribuées au bucket 1 tandis que les valeurs les plus grandes sont affectées au bucket 5.

Par exemple:

  • Les plus petites valeurs de 1, 3 et 4 sont attribuées au bucket 1 .
  • Les valeurs les plus grandes, 22 et 23, sont attribuées au bucket 5 .

Exemple 2 : utiliser ntile() avec un bloc de données

Supposons que nous ayons le bloc de données suivant dans R qui montre les points marqués par différents joueurs de basket-ball :

#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      A     12
2      B     19
3      C      7
4      D     22
5      E     24
6      F     28
7      G     30
8      H     19
9      I     15

Le code suivant montre comment utiliser la fonction ntile() pour créer une nouvelle colonne dans le bloc de données qui attribue à chaque joueur l’un des trois compartiments, en fonction des points marqués :

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      A     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      H     19      2
9      I     15      1

La nouvelle colonne bucket attribue une valeur comprise entre 1 et 3 à chaque joueur.

Les joueurs avec les points les plus bas reçoivent une valeur de 1 et les joueurs avec les points les plus élevés reçoivent une valeur de 3 .

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction across() dans dplyr
Comment utiliser la fonction relocate() dans dplyr
Comment utiliser la fonction slice() dans dplyr

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *