Group rule pack is a rule pack which defines a set of rules for groups of rows as a whole, i.e. functions which convert groups of interest to logical values. It should return a data frame with the following properties:

• There should be present some columns which combined values uniquely describe group. They should be defined during creation with group_packs().

• Number of rows equals to number of checked groups.

• Names of non-grouping columns should be treated as rule names.

• Values indicate whether the group as a whole follows the rule.

## Details

This format is inspired by dplyr's summarise() applied to grouped data.

The most common way to define data pack is by creating a functional sequence with grouping and ending with summarise(...).

## Interpretation

Group pack output is interpreted in the following way:

• All grouping columns are united with delimiter .group_sep (which is an argument of group_packs()).

• Levels of the resulting column are treated as names of some new variables which should be exposed as a whole. Names of non-grouping columns are treated as rule names. They are transformed in column pack format and interpreted accordingly.

Exposure result of group pack is different from others in a way that column var in exposure report doesn't represent the actual column in data.

## Examples

vs_am_rules <- . %>%
dplyr::group_by(vs, am) %>%
dplyr::summarise(nrow_low = n(.) > 10,
nrow_up = n(.) < 20,
rowmeans_low = rowMeans(.) > 19)

group_packs(vs_am = vs_am_rules, .group_vars = c("vs", "am"))#> \$vs_am
#> A Group rule pack:
#> Functional sequence with the following components:
#>
#>  1. dplyr::group_by(., vs, am)
#>  2. dplyr::summarise(., nrow_low = n(.) > 10, nrow_up = n(.) < 20,     rowmeans_low = rowMeans(.) > 19)
#>
#> Use 'functions' to extract the individual functions.
#>