coalesce function

Find the first non-missing element

Find the first non-missing element

Given a set of vectors, coalesce() finds the first non-missing value at each position. It's inspired by the SQL COALESCE function which does the same thing for SQL NULLs.

coalesce(..., .ptype = NULL, .size = NULL)

Arguments

  • ...: <dynamic-dots>

    One or more vectors. These will be recycled against each other, and will be cast to their common type.

  • .ptype: An optional prototype declaring the desired output type. If supplied, this overrides the common type of the vectors in ....

  • .size: An optional size declaring the desired output size. If supplied, this overrides the common size of the vectors in ....

Returns

A vector with the same type and size as the common type and common size of the vectors in ....

Examples

# Use a single value to replace all missing values x <- sample(c(1:5, NA, NA, NA)) coalesce(x, 0L) # The equivalent to a missing value in a list is `NULL` coalesce(list(1, 2, NULL), list(NA)) # Or generate a complete vector from partially missing pieces y <- c(1, 2, NA, NA, 5) z <- c(NA, NA, 3, 4, 5) coalesce(y, z) # Supply lists by splicing them into dots: vecs <- list( c(1, 2, NA, NA, 5), c(NA, NA, 3, 4, 5) ) coalesce(!!!vecs)

See Also

na_if() to replace specified values with an NA. tidyr::replace_na() to replace NA with a value.

  • Maintainer: Hadley Wickham
  • License: MIT + file LICENSE
  • Last published: 2023-11-17