Dplyr : Comment modifier les niveaux de facteurs à l’aide de mutate()



Vous pouvez utiliser la syntaxe de base suivante dans dplyr pour modifier les niveaux d’une variable factorielle à l’aide de la fonction mutate() :

library(dplyr)

df <- df %>% mutate(team=recode(team,
                                'H' = 'Hawks',
                                'M' = 'Mavs',
                                'C' = 'Cavs'))

Cette syntaxe particulière apporte les modifications suivantes à la variable team dans le bloc de données :

  • ‘H’ devient ‘Hawks’
  • ‘M’ devient ‘Mavs’
  • ‘C’ devient ‘Cavs’

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

Exemple : modifier les niveaux de facteurs à l’aide de mutate()

Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur divers joueurs de basket-ball :

#create data frame
df <- data.frame(team=factor(c('H', 'H', 'M', 'M', 'C', 'C')),
                 points=c(22, 35, 19, 15, 29, 23))

#view data frame
df

  team points
1    H     22
2    H     35
3    M     19
4    M     15
5    C     29
6    C     23

Nous pouvons utiliser la syntaxe suivante avec la fonction mutate() du package dplyr pour changer les niveaux de la variable team :

library(dplyr)

#change factor levels of team variable
df <- df %>% mutate(team=recode(team,
                                'H' = 'Hawks',
                                'M' = 'Mavs',
                                'C' = 'Cavs'))

#view updated data frame
df

   team points
1 Hawks     22
2 Hawks     35
3  Mavs     19
4  Mavs     15
5  Cavs     29
6  Cavs     23

En utilisant cette syntaxe, nous avons pu apporter les modifications suivantes à la variable team dans le bloc de données :

  • ‘H’ devient ‘Hawks’
  • ‘M’ devient ‘Mavs’
  • ‘C’ devient ‘Cavs’

Nous pouvons vérifier que les niveaux de facteurs ont été modifiés en utilisant la fonctionlevels () :

#display factor levels of team variable
levels(df$team)

[1] "Cavs"  "Hawks" "Mavs" 

Notez également que vous pouvez choisir de modifier un seul niveau de facteur au lieu de tous.

Par exemple, nous pouvons utiliser la syntaxe suivante pour remplacer uniquement « H » par « Hawks » et laisser les autres niveaux de facteurs inchangés :

library(dplyr)

#change one factor level of team variable
df <- df %>% mutate(team=recode(team, 'H' = 'Hawks'))

#view updated data frame
df

   team points
1 Hawks     22
2 Hawks     35
3     M     19
4     M     15
5     C     29
6     C     23

Notez que « H » a été remplacé par « Hawks », mais les deux autres niveaux de facteurs sont restés inchangés.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans dplyr :

Comment supprimer des lignes à l’aide de dplyr
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr

Ajouter un commentaire

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