rules: Create a list of rules

View source: R/rules.R

rulesR Documentation

Create a list of rules

Description

rules() is a function designed to create input for .funs argument of scoped dplyr "mutating" verbs (such as summarise_all() and transmute_all()). It converts bare expressions with . as input into formulas and repairs names of the output.

Usage

rules(..., .prefix = "._.")

Arguments

...

Bare expression(s) with . as input.

.prefix

Prefix to be added to function names.

Details

rules() repairs names by the following algorithm:

  • Absent names are replaced with the 'rule__\ind\' where \ind\ is the index of function position in the ... .

  • .prefix is added at the beginning of all names. The default is ._. . It is picked for its symbolism (it is the Morse code of letter 'R') and rare occurrence in names. In those rare cases it can be manually changed but this will not be tracked further. Note that it is a good idea for .prefix to be syntactic, as dplyr will force tibble names to be syntactic. To check if string is "good", use it as input to make.names(): if output equals that string than it is a "good" choice.

Examples

# `rules()` accepts bare expression calls with `.` as input, which is not
# possible with advised `list()` approach of `dplyr`
dplyr::summarise_all(mtcars[, 1:2], rules(sd, "sd", sd(.), ~ sd(.)))

dplyr::summarise_all(mtcars[, 1:2], rules(sd, .prefix = "a_a_"))

# Use `...` in `summarise_all()` to supply extra arguments
dplyr::summarise_all(data.frame(x = c(1:2, NA)), rules(sd), na.rm = TRUE)

echasnovski/ruler documentation built on April 3, 2023, 4:17 p.m.