Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

coalesce is a classic useful SQL operator that picks the first non-NULL value in a sequence of values.

We thought we would share a nice version of it for picking non-NA R with convenient operator infix notation wrapr::coalesce(). Here is a short example of it in action:

library("wrapr")

NA %?% 0

# [1] 0


A more substantial application is the following.

library("wrapr")

d <- wrapr::build_frame(
"more_precise_sensor", "cheaper_back_up_sensor" |
0.31                 , 0.25                     |
0.41                 , 0.5                      |
NA_real_             , 0.5                      )

print(d)

#   more_precise_sensor cheaper_back_up_sensor
# 1                0.31                   0.25
# 2                0.41                   0.50
# 3                  NA                   0.50

d$measurement <- d$more_precise_sensor %?% d\$cheaper_back_up_sensor

print(d)

#   more_precise_sensor cheaper_back_up_sensor measurement
# 1                0.31                   0.25        0.31
# 2                0.41                   0.50        0.41
# 3                  NA                   0.50        0.50