Skip to contents

Fill in missing values in a vector by successively pulling from candidate vectors in order. As per the ANSI SQL function COALESCE, dplyr::coalesce and hutils::coalesce. Unlike BBmisc::coalesce which just returns the first non-NULL vector. Written in C, and multithreaded for numeric and factor types.





A set of same-class vectors. These vectors can be supplied as separate arguments or as a single plain list, data.table or data.frame, see examples.


Factor type is supported only when the factor levels of each item are equal.

NaN is considered missing (note and all.equal(NA_real_, NaN) are both TRUE).


Atomic vector of the same type and length as the first vector, having NA values replaced by corresponding non-NA values from the other vectors. If the first item is NULL, the result is NULL.

See also


x = c(11L, NA, 13L, NA, 15L, NA)
y = c(NA, 12L, 5L, NA, NA, NA)
z = c(11L, NA, 1L, 14L, NA, NA)
fcoalesce(x, y, z)
#> [1] 11 12 13 14 15 NA
fcoalesce(list(x,y,z))   # same
#> [1] 11 12 13 14 15 NA
fcoalesce(x, list(y,z))  # same
#> [1] 11 12 13 14 15 NA