# wrapr 1.5.0 available on CRAN

[This article was first published on

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

**R – Win-Vector Blog**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The `R`

package wrapr 1.5.0 is now available on CRAN.

wrapr includes a lot of tools for writing better `R`

code:

`let()`

(let block)`%.>%`

(dot arrow pipe)`build_frame()`

/`draw_frame()`

(`data.frame`

builders and formatters )`qc()`

(quoting concatenate)`:=`

(named map builder)`%?%`

(coalesce)**NEW!**`%.|%`

(reduce/expand args)**NEW!**`uniques()`

(safe`unique()`

replacement)**NEW!**`partition_tables()`

/`execute_parallel()`

**NEW!**`DebugFnW()`

(function debug wrappers)`λ()`

(anonymous function builder)

I’ll be writing articles on a number of the new capabilities. For now I just leave you with the nifty operator coalesce notation.

Coalesce takes values from its arguments in left to right order taking the first non-`NA`

value (if any available):

NA %?% 5 # [1] 5 1 %?% 5 # [1] 1 5 %?% NA # [1] 5

For vectors each position is calculated independently, and scalars are re-cycled to vector sizes. This allows fairly complicated coalesce strategies (such as take from first two vectors if possible, else write in zero) to be expressed very succinctly:

vec1 <- c(1, 2, NA, NA) vec2 <- c(10, NA, 20, NA) vec1 %?% vec2 %?% 0 # [1] 1 2 20 0

To

**leave a comment**for the author, please follow the link and comment on their blog:**R – Win-Vector Blog**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

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