Learn R Programming

cheapr (version 1.3.1)

str_coalesce: Coalesce character vectors

Description

str_coalesce() find the first non empty string "". This is particularly useful for assigning and fixing the names of R objects.

In this implementation, the empty string "" has priority over NA which means NA is only returned when all values are NA, e.g. str_coalesce(NA, NA).

Usage

str_coalesce(..., .args = NULL)

Value

A coalesced character vector of length corresponding to the recycled size of supplied character vectors. See ?recycle for details.

Arguments

...

Character vectors to coalesce.

.args

An alternative to ... for easier programming with lists.

Details

str_coalesce(x, y) is equivalent to if_else(x != "" & !is.na(x), x, y).

Examples

Run this code
library(cheapr)

# Normal examples
str_coalesce("", "hello")
str_coalesce("", NA, "goodbye")

# '' always preferred
str_coalesce("", NA)
str_coalesce(NA, "")

# Unless there are only NAs
str_coalesce(NA, NA)

# `str_coalesce` is vectorised

x <- val_insert(letters, "", n = 10)
y <- val_insert(LETTERS, "", n = 10)

str_coalesce(x, y)

# Using `.args` instead of `do.call` is much more efficient
library(bench)
x <- cheapr_rep_len(list(letters), 10^3)

mark(do.call(str_coalesce, x),
     str_coalesce(.args = x),
     iterations = 50)

Run the code above in your browser using DataLab