Come sostituire più valori in un frame di dati utilizzando dplyr


È possibile utilizzare la seguente sintassi di base per sostituire più valori in un frame di dati in R utilizzando le funzioni nel pacchetto dplyr :

 library (dplyr)

df %>%
  mutate(var1 = recode(var1, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '), 
         var2 = recode(var2, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '))

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

Esempio: sostituisci più valori utilizzando dplyr

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

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West', 'North'),
                 position=c('Guard', 'Guard', 'Guard', 'Guard', 'Forward'),
                 dots=c(22, 25, 29, 13, 18))

#view data frame
df

   conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13
5 North Forward 18

Supponiamo ora di voler sostituire nel data frame i seguenti valori:

  • colonna ‘conf’:
    • Sostituisci “Est” con “E”
    • Cambia “Ovest” in “W”
    • Sostituisci “Nord” con “N”
  • Colonna “Posizione”:
    • Cambia “Guardia” in “G”
    • Cambia “Avanti” in “F”

Possiamo usare le funzioni mutate() e recode() per fare questo:

 library (dplyr)

#replace multiple values in conf and position columns
df %>%
  mutate(conf = recode(conf, ' East ' = ' E ', ' West ' = ' W ', ' North ' = ' N '), 
         position = recode(position, ' Guard ' = ' G ', ' Forward ' = ' F '))

  conf position points
1EG 22
2 EG 25
3 WG 29
4 WG 13
5 NF 18

Tieni presente che ciascuno dei valori nelle colonne “conf” e “posizione” è stato sostituito con valori specifici.

Da notare inoltre che i valori nella colonna “punti” sono rimasti invariati.

Risorse addizionali

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

Come ricodificare i valori utilizzando dplyr
Come sostituire NA con Zero in 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 *