J'essaie de créer une nouvelle colonne avec la première valeur NA d'un ensemble de colonnes en utilisant une variable pour les noms de colonnes dans dplyr::coalesce()
. Comment le faire fonctionner ?
J'ai essayé d'utiliser coalesce() avec les noms de colonnes réels et cela fonctionne. Il échoue lorsque je lui passe une variable.
tb <- tibble(a = c("a", NA, "a", NA, "a"),
b = c(NA, "b", NA, NA, NA),
c = c('c', 'c', 'c', 'c', NA))
df <- tb %>%
mutate(combined = coalesce(a, b, c))
Cela fonctionne avec le résultat suivant
# A tibble: 5 x 4
a b c combined
<chr> <chr> <chr> <chr>
1 a NA c a
2 NA b c b
3 a NA c a
4 NA NA c c
5 a NA NA a
Cependant, lorsque je crée une variable pour les noms de colonnes :
uCols <- c("a", "b", "c")
et exécuter un code similaire :
df <- tb %>%
mutate(combined = coalesce(uCols))
J'obtiens l'erreur suivante :
Error: Column `combined` must be length 5 (the number of rows) or one, not 3
J'ai essayé d'utiliser enexprs(uCols)
mais cela ne fonctionne pas.
Comment passer le uCols
à la variable coalesce()
pour qu'il fonctionne comme prévu ?