What was your problem with coalesce? this seems to work
dfr <- data.frame(
participant_id = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L),
Q45480_1 = c(NA, 1, NA, NA, NA, 1, NA, NA, NA, NA),
Q45480_2 = c(2, NA, NA, NA, NA, NA, NA, 2, NA, NA),
Q45480_3 = c(NA, NA, NA, 3, NA, NA, NA, NA, 3, NA),
Q45480_4 = c(NA, NA, 4, NA, NA, NA, NA, NA, NA, NA),
Q45480_5 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 5))
library(dplyr)
dfr %>%
rowwise() %>%
mutate(Qchoice = coalesce(Q45480_1, Q45480_2, Q45480_3, Q45480_4, Q45480_5))
#> Source: local data frame [10 x 7]
#> Groups: <by row>
#>
#> # A tibble: 10 x 7
#> participant_id Q45480_1 Q45480_2 Q45480_3 Q45480_4 Q45480_5 Qchoice
#> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 NA 2 NA NA NA 2
#> 2 2 1 NA NA NA NA 1
#> 3 3 NA NA NA 4 NA 4
#> 4 4 NA NA 3 NA NA 3
#> 5 5 NA NA NA NA NA NA
#> 6 6 1 NA NA NA NA 1
#> 7 7 NA NA NA NA NA NA
#> 8 8 NA 2 NA NA NA 2
#> 9 9 NA NA 3 NA NA 3
#> 10 10 NA NA NA NA 5 5