wrapr 1.5.0 available on CRAN
Win-Vector Blog 2018-08-02
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.framebuilders and formatters ) -
qc()(quoting concatenate) -
:=(named map builder) -
%?%(coalesce) NEW! -
%.|%(reduce/expand args) NEW! -
uniques()(safeunique()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