Comment créer une variable catégorielle à partir de continue dans R



Vous pouvez utiliser la fonction cut() dans R pour créer une variable catégorielle à partir d’une variable continue.

Cette fonction utilise la syntaxe de base suivante :

df$cat_variable <- cut(df$continuous_variable,
                       breaks=c(5, 10, 15, 20, 25),
                       labels=c('A', 'B', 'C', 'D'))

Notez que breaks spécifie les valeurs sur lesquelles diviser la variable continue et labels spécifie l’étiquette à donner aux valeurs de la nouvelle variable catégorielle.

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

Exemple : créer une variable catégorielle à partir d’un continu dans R

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(78, 82, 86, 94, 99, 104, 109, 110))

#view data frame
df

  team points
1    A     78
2    B     82
3    C     86
4    D     94
5    E     99
6    F    104
7    G    109
8    H    110

Actuellement, les points sont une variable continue.

On peut utiliser la fonction cut() pour le découper en variable catégorielle :

#add new column that cuts 'points' into categories
df$cat <- cut(df$points,
              breaks=c(70, 80, 90, 100, 110),
              labels=c('Bad', 'OK', 'Good', 'Great'))

#view updated data frame
df

  team points   cat
1    A     78   Bad
2    B     82    OK
3    C     86    OK
4    D     94  Good
5    E     99  Good
6    F    104 Great
7    G    109 Great
8    H    110 Great

Nous avons créé une nouvelle variable catégorielle appelée cat qui classe chaque équipe dans le bloc de données comme Mauvaise, OK, Bonne ou Excellente en fonction de leurs points .

Nous pouvons utiliser la fonction class() pour vérifier la classe de cette nouvelle variable :

#check class of 'cat' column
class(df$cat)

[1] "factor"

On voit que la variable cat est un facteur.

Nous pouvons également utiliser la fonction table() pour compter les occurrences de chaque catégorie dans la variable cat :

#count occurrences of each category in 'cat' variable
table(df$cat)
  Bad    OK  Good Great 
    1     2     2     3 

Notez que si vous ne fournissez pas d’argument labels à la fonction cut() , R utilisera simplement la plage de valeurs d’intervalle comme étiquettes :

#add new column that cuts 'points' into categories
df$cat <- cut(df$points, breaks=c(70, 80, 90, 100, 110))

#view updated data frame
df

  team points       cat
1    A     78   (70,80]
2    B     82   (80,90]
3    C     86   (80,90]
4    D     94  (90,100]
5    E     99  (90,100]
6    F    104 (100,110]
7    G    109 (100,110]
8    H    110 (100,110]

Dans certains cas, vous préférerez peut-être cela à l’utilisation d’étiquettes personnalisées.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

Comment convertir des variables catégorielles en numériques dans R
Comment créer des variables catégorielles dans R
Comment tracer des données catégorielles dans R

Ajouter un commentaire

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