Come sostituire na con zero in dplyr


È possibile utilizzare la seguente sintassi per sostituire tutti i valori NA con zero in un frame di dati utilizzando il pacchetto dplyr in R:

 #replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

È possibile utilizzare la seguente sintassi per sostituire i valori NA in una colonna specifica di un frame di dati:

 #replace NA values with zero in column named col1
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1))

E puoi utilizzare la seguente sintassi per sostituire il valore NA in una delle tante colonne in un frame di dati:

 #replace NA values with zero in columns col1 and col2
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1),
                    col2 = ifelse(is. na (col2), 0, col2))

I seguenti esempi mostrano come utilizzare concretamente queste funzioni con il seguente blocco dati:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'),
                 pts=c(17, 12, NA, 9, 25),
                 rebs=c(3, 3, NA, NA, 8),
                 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

Esempio 1: sostituisci tutti i valori NA in tutte le colonne

Il codice seguente mostra come sostituire tutti i valori NA in tutte le colonne in un frame di dati:

 library (dplyr)

#replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 0

Esempio 2: sostituisci i valori NA in una colonna specifica

Il codice seguente mostra come sostituire i valori NA in una colonna specifica di un frame di dati:

 library (dplyr)

#replace NA values with zero in rebs column only
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C NA 0 2
4 D 9 0 4
5 E 25 8 NA

Esempio 3: sostituisci i valori NA in una delle diverse colonne

Il codice seguente mostra come sostituire i valori NA in una delle tante colonne in un frame di dati:

 library (dplyr)

#replace NA values with zero in rebs and pts columns
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs),
                    pts = ifelse(is. na (pts), 0, pts))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 NA

Risorse addizionali

Come filtrare le righe contenenti una determinata stringa utilizzando dplyr
Come calcolare le frequenze relative utilizzando dplyr
Come selezionare la prima riga per gruppo utilizzando dplyr

Aggiungi un commento

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