Comment diviser les données en groupes de taille égale dans R



Vous pouvez utiliser la fonction cut_number() du package ggplot2 dans R pour diviser un vecteur en groupes de taille égale.

Cette fonction utilise la syntaxe de base suivante :

numéro_coupe (x, n)

où:

  • x : Nom du vecteur numérique à diviser
  • n : Nombre de groupes

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : Comment diviser les données en groupes de taille égale dans R

Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur les points marqués par 12 joueurs de basket différents

#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       A      1
2       B      2
3       C      2
4       D      2
5       E      4
6       F      5
7       G      7
8       H      9
9       I     12
10      J     14
11      K     15
12      L     22

Connexe : Comment utiliser la fonction LETTRES dans R

Nous pouvons utiliser la fonction cut_number() du package ggplot2 pour créer une nouvelle colonne appelée group qui divise chaque ligne du bloc de données en l’un des trois groupes en fonction de la valeur dans la colonne des points :

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       A      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       H      9 (3.33,10]
9       I     12   (10,22]
10      J     14   (10,22]
11      K     15   (10,22]
12      L     22   (10,22]

Chacun des 12 joueurs a été placé dans l’un des trois groupes en fonction de la valeur indiquée dans la colonne des points .

D’après le résultat, nous pouvons voir qu’il existe 3 groupes distincts :

  • groupe 1 : la valeur des points est comprise entre 1 et 3,33.
  • groupe 2 : la valeur des points est comprise entre 3,33 et 10.
  • groupe 3 : la valeur des points est comprise entre 10 et 22.

Nous pouvons voir que quatre joueurs ont été placés dans chaque groupe.

Si vous souhaitez que la colonne de groupe affiche les groupes sous forme de valeurs entières, vous pouvez envelopper la fonction cut_number() dans une fonction 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       H      9     2
9       I     12     3
10      J     14     3
11      K     15     3
12      L     22     3

La nouvelle colonne de groupe contient désormais les valeurs 1, 2 et 3 pour indiquer à quel groupe appartient le joueur.

Encore une fois, chaque groupe comprend quatre joueurs.

Remarque : Pour diviser la colonne de points en plus de trois groupes, remplacez simplement le 3 dans la fonction cut_number() par un nombre différent.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment diviser un bloc de données dans R
Comment diviser les données en ensembles de formation et de test dans R
Comment effectuer un regroupement de données dans R

Ajouter un commentaire

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