Come utilizzare la funzione coalesce() in dplyr (con esempi)


È possibile utilizzare la funzione coalesce() del pacchetto dplyr in R per restituire il primo valore non mancante in ogni posizione di uno o più vettori.

Esistono due modi comuni per utilizzare questa funzione:

Metodo 1: sostituisci i valori mancanti nel vettore

 library (dplyr)

#replace missing values with 100
coalescence(x, 100)

Metodo 2: restituisce il primo valore non mancante nelle colonne del frame di dati

 library (dplyr)

#return first non-missing value at each position across columns A and B
coalesce(df$A, df$B)

Gli esempi seguenti mostrano come applicare ciascun metodo nella pratica.

Esempio 1: utilizzare coalesce() per sostituire i valori mancanti nel vettore

Il codice seguente mostra come utilizzare la funzione coalesce() per sostituire tutti i valori mancanti in un vettore con un valore 100:

 library (dplyr)

#create vector of values
x <- c(4, NA, 12, NA, 5, 14, 19)

#replace missing values with 100
coalescence(x, 100)

[1] 4 100 12 100 5 14 19

Nota che ogni valore NA nel vettore originale è stato sostituito con un valore di 100 .

Esempio 2: utilizzare coalesce() per restituire il primo valore non mancante nelle colonne del frame di dati

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (A=c(10, NA, 5, 6, NA, 7, NA),
                 B=c(14, 9, NA, 3, NA, 10, 4))

#view data frame
df

   AB
1 10 14
2 NA 9
3 5 NA
4 6 3
5 NA NA
6 7 10
7 NA 4

Il codice seguente mostra come utilizzare la funzione coalesce() per restituire il primo valore non mancante nelle colonne A e B del frame di dati:

 library (dplyr)

#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B)

#view updated data frame
df

   ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA NA
6 7 10 7
7 NA 4 4

La colonna C risultante contiene il primo valore non mancante nelle colonne A e B.

Tieni presente che la riga 5 ha un valore NA nella colonna C poiché le colonne A e B avevano entrambe valori NA in questa riga.

Possiamo semplicemente aggiungere un valore extra alla funzione coalesce() da utilizzare come valore se sono presenti valori NA in ciascuna colonna:

 library (dplyr)

#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B, 100)

#view updated data frame
df

   ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA 100
6 7 10 7
7 NA 4 4

Tieni presente che il valore NA nella riga 5 della colonna C è stato ora sostituito con il valore 100 .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni utilizzando dplyr:

Come eliminare righe utilizzando dplyr
Come organizzare le righe utilizzando dplyr
Come filtrare in base a più condizioni utilizzando dplyr

Aggiungi un commento

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