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