Monday, March 16, 2015

dplyr Use Cases: Non-Interactive Mode

The current release of dplyr (v 0.4.1) offers lot more flexibility regarding usage of important verbs in non-interactive mode. In this post, I'm exploring different possible use-cases.

  • group_by_, select_, rename_:
For group_by_, select_ and rename_, we can pass a character vector of variable names as an argument to .dots parameter.

  • filter_:
To use filter_ function, we need to pass filter criteria as a parameter to .dots. The criteria can be created using lazyeval::interp function.

  • mutate_, transmute_, summarise_:
We need to provide 2 things to these functions - a list of functions to be applied on the input variables (with corresponding input variables) and a character vector of output variables names. These 2 things can be passed to the .dots argument using combination of lazyeval::interp  and setNames function.

  • joins:
For 2 table verbs, there's no *_join_ function and we don't need one for general purposes. We can just pass a named vector to by argument. setNames function comes in handy while doing this.

The R Code for the above mentioned use cases is shown below and can also be found on this GitHub Gist.