Comment utiliser la fonction cut() dans R



La fonction cut() dans R peut être utilisée pour découper une plage de valeurs en bacs et spécifier des étiquettes pour chaque bac.

Cette fonction utilise la syntaxe suivante :

cut(x, pauses, étiquettes = NULL, …)

où:

  • x : Nom du vecteur
  • breaks : Nombre de breaks à réaliser ou vecteur de points de break
  • labels : étiquettes pour les bacs résultants

Les exemples suivants montrent comment utiliser cette fonction dans différents scénarios avec le bloc de données suivant dans R :

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1      A      4
2      B      7
3      C      8
4      D     12
5      E     14
6      F     16
7      G     20
8      H     26
9      I     36

Exemple 1 : Couper le vecteur en fonction du nombre de cassures

Le code suivant montre comment utiliser la fonction cut() pour créer une nouvelle colonne appelée catégorie qui coupe la colonne de points en groupes de quatre tailles égales :

#create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks=4)

#view updated data frame
df

  player points  category
1      A      4 (3.97,12]
2      B      7 (3.97,12]
3      C      8 (3.97,12]
4      D     12 (3.97,12]
5      E     14   (12,20]
6      F     16   (12,20]
7      G     20   (12,20]
8      H     26   (20,28]
9      I     36   (28,36]

Puisque nous avons spécifié breaks=4 , la fonction cut() divise les valeurs de la colonne de points en groupes de quatre tailles égales.

Voici comment la fonction cut() a fait cela :

  • Premièrement, il a trouvé la différence entre les valeurs les plus grandes et les plus petites dans la colonne des points (36 – 4 = 32).
  • Ensuite, il divise cette différence par 4 (32 / 4 = 8)
  • Le résultat est quatre bacs d’une largeur de 8 chacun.

Note : L’intervalle le plus bas est égal à 3,97 au lieu de 4 en raison de la fonctionnalité suivante issue de la documentation cut() :

Lorsque les pauses sont spécifiées sous la forme d’un nombre unique, la plage des données est divisée en morceaux de pauses de longueur égale, puis les limites extérieures sont éloignées de 0,1 % de la plage pour garantir que les valeurs extrêmes se situent toutes deux dans les intervalles de pause.

Exemple 2 : Vecteur de coupe basé sur des points de rupture spécifiques

Le code suivant montre comment utiliser la fonction cut() pour créer une nouvelle colonne appelée catégorie qui coupe la colonne de points en fonction d’un vecteur de points d’arrêt spécifiques :

#create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1      A      4   (0,10]
2      B      7   (0,10]
3      C      8   (0,10]
4      D     12  (10,15]
5      E     14  (10,15]
6      F     16  (15,20]
7      G     20  (15,20]
8      H     26  (20,40]
9      I     36  (20,40]

La fonction cut() a classé chaque joueur dans des catégories en fonction du vecteur spécifique de points d’arrêt que nous avons fourni.

Exemple 3 : Couper un vecteur à l’aide de points de rupture et d’étiquettes spécifiques

Le code suivant montre comment utiliser la fonction cut() pour créer une nouvelle colonne appelée catégorie qui coupe la colonne de points en fonction d’un vecteur de points d’arrêt spécifiques avec des étiquettes personnalisées :

#create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c('Bad', 'OK', 'Good', 'Great'))

#view updated data frame
df

  player points category
1      A      4      Bad
2      B      7      Bad
3      C      8      Bad
4      D     12       OK
5      E     14       OK
6      F     16     Good
7      G     20     Good
8      H     26    Great
9      I     36    Great

La nouvelle colonne de catégories classe chaque joueur comme Mauvais, OK, Bon ou Excellent en fonction de la valeur correspondante dans la colonne des points .

Remarque : Le nombre d’étiquettes doit toujours être inférieur d’une unité au nombre de points d’arrêt pour éviter l’erreur suivante :

Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",  : 
  lengths of 'breaks' and 'labels' differ

Ressources additionnelles

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

Comment utiliser la fonction tabulate() dans R
Comment utiliser la fonction split() dans R
Comment utiliser la fonction match() dans R
Comment utiliser la fonction replicate() dans R

Ajouter un commentaire

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