Given a set of vectors, `coalesce()`

finds the first non-missing value
at each position. This is inspired by the SQL `COALESCE`

function
which does the same thing for `NULL`

s.

coalesce(...)

## Arguments

... |
Vectors. All inputs should either be length 1, or the
same length as the first argument.
These dots are evaluated with explicit splicing. |

## Value

A vector the same length as the first `...`

argument with
missing values replaced by the first non-missing value.

## See also

`na_if()`

to replace specified values with a `NA`

.

## Examples

#> [1] 0 2 1 0 3 0 5 4

# Or match together a complete vector from missing pieces
y <- c(1, 2, NA, NA, 5)
z <- c(NA, NA, 3, 4, 5)
coalesce(y, z)

#> [1] 1 2 3 4 5

# Supply lists by splicing them into dots:
vecs <- list(
c(1, 2, NA, NA, 5),
c(NA, NA, 3, 4, 5)
)
coalesce(!!! vecs)

#> [1] 1 2 3 4 5