Comment ajouter un nouveau niveau à factoriser dans R (avec exemple)
Vous pouvez utiliser la syntaxe de base suivante pour ajouter un nouveau niveau à une variable de facteur dans R :
levels(df$my_factor) <- c(levels(df$my_factor), 'new_level')
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : ajouter un nouveau niveau au facteur dans R
Supposons que nous ayons le bloc de données suivant dans R qui montre le nombre de ventes réalisées dans différentes régions pour un magasin de détail :
#create data frame
df <- data.frame(region=factor(c('A', 'B', NA, 'D', NA, 'F')),
sales=c(12, 18, 21, 14, 34, 40))
#view data frame
df
region sales
1 A 12
2 B 18
3 <NA> 21
4 D 14
5 <NA> 34
6 F 40
Notez que la variable région est un facteur.
Pour visualiser les niveaux de ce facteur, nous pouvons utiliser la fonctionlevels() :
#view factor levels for region
levels(df$region)
[1] "A" "B" "D" "F"
Nous pouvons utiliser la syntaxe suivante pour ajouter un nouveau niveau de facteur appelé « aucune région » :
#add factor level called 'no region' levels(df$region) <- c(levels(df$region), 'no region') #convert each NA to 'no region' df$region[is.na(df$region)] <- 'no region' #view factor levels for region levels(df$region) [1] "A" "B" "D" "F" "no region"
Le nouveau niveau appelé « aucune région » a été ajouté comme niveau de facteur.
Si nous le souhaitons, nous pouvons utiliser la fonction table() pour compter l’occurrence de chaque niveau de facteur :
#view occurrences of each factor level
table(df$region)
A B D F no region
1 1 1 1 2
À partir du résultat, nous pouvons voir que le nouveau niveau de facteur appelé « aucune région » apparaît deux fois dans la colonne région du bloc de données.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment convertir un facteur en numérique dans R
Comment convertir un facteur en caractère dans R
Comment réorganiser les niveaux de facteurs dans R