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