Comment utiliser la fonction coalesce() dans dplyr (avec exemples)



Vous pouvez utiliser la fonction coalesce() du package dplyr dans R pour renvoyer la première valeur non manquante dans chaque position d’un ou plusieurs vecteurs.

Il existe deux manières courantes d’utiliser cette fonction :

Méthode 1 : remplacer les valeurs manquantes dans le vecteur

library(dplyr)

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

Méthode 2 : renvoyer la première valeur non manquante dans les colonnes du bloc de données

library(dplyr)

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

Les exemples suivants montrent comment appliquer chaque méthode dans la pratique.

Exemple 1 : utilisez coalesce() pour remplacer les valeurs manquantes dans le vecteur

Le code suivant montre comment utiliser la fonction coalesce() pour remplacer toutes les valeurs manquantes dans un vecteur par une valeur de 100 :

library(dplyr)

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

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

[1]   4 100  12 100   5  14  19

Notez que chaque valeur NA dans le vecteur d’origine a été remplacée par une valeur de 100 .

Exemple 2 : utilisez coalesce() pour renvoyer la première valeur non manquante dans les colonnes du bloc de données

Supposons que nous ayons le bloc de données suivant dans 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

   A  B
1 10 14
2 NA  9
3  5 NA
4  6  3
5 NA NA
6  7 10
7 NA  4

Le code suivant montre comment utiliser la fonction coalesce() pour renvoyer la première valeur non manquante dans les colonnes A et B du bloc de données :

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

   A  B  C
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 colonne C résultante contient la première valeur non manquante dans les colonnes A et B.

Notez que la ligne 5 a une valeur de NA dans la colonne C puisque les colonnes A et B avaient toutes deux des valeurs NA dans cette ligne.

Nous pouvons simplement ajouter une valeur supplémentaire à la fonction coalesce() à utiliser comme valeur s’il y a des valeurs NA dans chaque colonne :

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

   A  B   C
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

Notez que la valeur NA dans la ligne 5 de la colonne C a maintenant été remplacée par une valeur de 100 .

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes à l’aide de dplyr :

Comment supprimer des lignes à l’aide de dplyr
Comment organiser les lignes à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *