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