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.


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(...).


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.

See also

Data pack, Column pack, row pack, cell pack.


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. #>