Comment créer des variables catégorielles dans R (avec exemples)



Vous pouvez utiliser la syntaxe suivante pour créer une variable catégorielle dans R :

#create categorical variable from scratch
cat_variable <- factor(c('A', 'B', 'C', 'D'))

#create categorical variable (with two possible values) from existing variable
cat_variable <- as.factor(ifelse(existing_variable < 4, 1, 0))

#create categorical variable (with multiple possible values) from existing variable
cat_variable <- as.factor(ifelse(existing_variable < 3, 'A',
                          ifelse(existing_variable < 4, 'B', 
                          ifelse(existing_variable < 5, 'C', 
                          ifelse(existing_variable < 6, 'D',0)))))

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : créer une variable catégorielle à partir de zéro

Le code suivant montre comment créer une variable catégorielle à partir de zéro :

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

  var1 var2 var3 var4
1    1    7    3   14
2    3    7    3   16
3    3    8    6   22
4    4    3   10   19
5    5    2   12   18

#add categorical variable named 'type' to data frame
df$type <- factor(c('A', 'B', 'B', 'C', 'D'))

#view updated data frame
df

  var1 var2 var3 var4 type
1    1    7    3   14    A
2    3    7    3   16    B
3    3    8    6   22    B
4    4    3   10   19    C
5    5    2   12   18    D

Exemple 2 : créer une variable catégorielle (avec deux valeurs) à partir d’une variable existante

Le code suivant montre comment créer une variable catégorielle à partir d’une variable existante dans un bloc de données :

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

  var1 var2 var3 var4
1    1    7    3   14
2    3    7    3   16
3    3    8    6   22
4    4    3   10   19
5    5    2   12   18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as.factor(ifelse(df$var1 < 4, 1, 0))

#view updated data frame
df

  var1 var2 var3 var4 type
1    1    7    3   14    1
2    3    7    3   16    1
3    3    8    6   22    1
4    4    3   10   19    0
5    5    2   12   18    0

À l’aide de l’instruction ifelse() , nous avons créé une nouvelle variable catégorielle appelée « type » qui prend les valeurs suivantes :

  • 1 si la valeur de la colonne ‘var1’ est inférieure à 4.
  • 0 si la valeur dans la colonne ‘var1’ n’est pas inférieure à 4.

Exemple 3 : créer une variable catégorielle (avec plusieurs valeurs) à partir d’une variable existante

Le code suivant montre comment créer une variable catégorielle (avec plusieurs valeurs) à partir d’une variable existante dans un bloc de données :

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 10, 12),
                 var4=c(14, 16, 22, 19, 18))

#view data frame
df

  var1 var2 var3 var4
1    1    7    3   14
2    3    7    3   16
3    3    8    6   22
4    4    3   10   19
5    5    2   12   18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as.factor(ifelse(df$var1 < 3, 'A',
                     ifelse(df$var1 < 4, 'B', 
                     ifelse(df$var1 < 5, 'C', 
                     ifelse(df$var1 < 6, 'D', 'E')))))

#view updated data frame
df

  var1 var2 var3 var4 type
1    1    7    3   14    A
2    3    7    3   16    B
3    3    8    6   22    B
4    4    3   10   19    C
5    5    2   12   18    D

À l’aide de l’instruction ifelse() , nous avons créé une nouvelle variable catégorielle appelée « type » qui prend les valeurs suivantes :

  • A ‘ si la valeur de la colonne ‘var1’ est inférieure à 3.
  • Sinon, ‘ B ‘ si la valeur dans la colonne ‘var1’ est inférieure à 4.
  • Sinon, ‘ C ‘ si la valeur dans la colonne ‘var1’ est inférieure à 5.
  • Sinon, ‘ D ‘ si la valeur dans la colonne ‘var1’ est inférieure à 6.
  • Sinon, ‘ E ‘.

Ressources additionnelles

Comment créer des variables factices dans R
Comment convertir un facteur en caractère dans R
Comment convertir un caractère en numérique dans R

Ajouter un commentaire

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