Я пытаюсь создать новый столбец с первым значением NA из набора столбцов, используя переменную для имен столбцов в dplyr::coalesce()
.Как заставить это работать?
Я попытался использовать coalesce () с фактическими именами столбцов, и это работает.Сбой при передаче переменной.
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))
Это работает со следующим выводом
# 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
Однако, когда я создаю переменную для имен столбцов:
uCols <- c("a", "b", "c")
и запустите аналогичный код:
df <- tb %>%
mutate(combined = coalesce(uCols))
Я получаю следующую ошибку:
Error: Column `combined` must be length 5 (the number of rows) or one, not 3
Я пытался использовать enexprs(uCols)
, но это не работает.
Как передать переменную uCols
в coalesce()
, чтобы она работала как нужно?