R Tip: Use Slices

Win-Vector Blog 2018-04-17

R tip: use slices.

SliceOMatic

R has a very powerful array slicing ability that allows for some very slick data processing.

Suppose we have a data.framed“, and for every row where d$n_observations < 5 we wish to “NA-out” some other columns (mark them as not yet reliably available). Using slicing techniques this can be done quite quickly as follows.

library("wrapr")d[d$n_observations < 5,   qc(mean_cost, mean_revenue, mean_duration)] <- NA

(For “qc()” please see R Tip: Use qc() For Fast Legible Quoting.)

The above notation is very convenient, compact, and powerful. We are adding this as operator to our rquery query generator as assign_slice() (and a related method for directly dealing with NA/NULL).