Come ricodificare i valori utilizzando dplyr


A volte potresti essere interessato a ricodificare determinati valori in un frame di dati in R. Fortunatamente, questo può essere fatto facilmente utilizzando la funzione recode() dal pacchetto dplyr.

Questo tutorial mostra diversi esempi di utilizzo pratico di questa funzione.

Esempio 1: ricodificare una singola colonna in un dataframe

Il codice seguente mostra come ricodificare una singola colonna in un dataframe:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' and 'Loss' to '1' and '0'
df %>% mutate (result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 to 24 1
2 B 29 0
3 C 13 1
4 D 15 0

Esempio 2: ricodificare una singola colonna in un frame di dati e fornire valori NA

Il codice seguente mostra come ricodificare una singola colonna in un frame di dati e assegnare il valore NA a qualsiasi valore a cui non è esplicitamente assegnato un nuovo valore:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' to '1' and give all other values a value of NA
df %>% mutate (result=recode(result, ' Win '='1', .default =NA_character_))

       player points result
1 to 24 1
2 B 29 <NA>
3 C 13 1
4 D 15 <NA>

Esempio 3: ricodificare più colonne in un dataframe

Il codice seguente mostra come ricodificare più colonne contemporaneamente in un dataframe:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#recode 'player' and 'result' columns
df %>% mutate (player=recode(player, ' A '='Z'),
              result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 Z 24 1
2 B 29 0
3 C 13 1
4 D 15 0

Puoi trovare la documentazione completa per la funzione recode() qui .

Aggiungi un commento

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