Dplyr: come modificare i livelli dei fattori utilizzando mutate()


Puoi utilizzare la seguente sintassi di base in dplyr per modificare i livelli di una variabile fattore utilizzando la funzione mutate() :

 library (dplyr)

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

Questa particolare sintassi apporta le seguenti modifiche alla variabile team nel data frame:

  • ‘H’ diventa ‘Falchi’
  • ‘M’ diventa ‘Mavs’
  • ‘C’ diventa ‘Cavs’

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: modificare i livelli dei fattori utilizzando mutate()

Supponiamo di avere il seguente frame di dati in R che contiene informazioni su vari giocatori di basket:

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

#view data frame
df

  team points
1:22 a.m.
2:35 a.m.
3 M 19
4 M 15
5 C 29
6 C 23

Possiamo usare la seguente sintassi con la funzione mutate() del pacchetto dplyr per cambiare i livelli della variabile 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

Utilizzando questa sintassi, siamo stati in grado di apportare le seguenti modifiche alla variabile team nel frame di dati:

  • ‘H’ diventa ‘Falchi’
  • ‘M’ diventa ‘Mavs’
  • ‘C’ diventa ‘Cavs’

Possiamo verificare che i livelli dei fattori siano stati modificati utilizzando la funzione livelli () :

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

[1] “Cavs” “Hawks” “Mavs” 

Tieni inoltre presente che puoi scegliere di modificare solo un livello di fattore anziché tutti.

Ad esempio, possiamo utilizzare la seguente sintassi per sostituire solo “H” con “Hawks” e lasciare invariati gli altri livelli di fattore:

 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

Si noti che “H” è stato sostituito da “Hawks”, ma gli altri due livelli di fattore sono rimasti invariati.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in dplyr:

Come eliminare righe utilizzando dplyr
Come selezionare le colonne per indice utilizzando dplyr
Come filtrare le righe contenenti una determinata stringa utilizzando dplyr

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *