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