R/e_table_aggregate.R
e_table_aggregate.Rd
Aggregate a set of variables by another set of variables with a specific function
data.frame or tibble
list of variable names to group by
list of variable names to aggregate
a function (e.g., sum
) to aggregate all variables by, or a list of functions to aggregate each variable by
drops or keeps groups
aggregated data
e_table_aggregate(
dat = dat_mtcars_e
, var_names_by = c("cyl")
, var_names_aggregate = c("disp", "hp", "drat")
, func_aggregate = mean
)
#> # A tibble: 3 × 4
#> cyl disp hp drat
#> <fct> <dbl> <dbl> <dbl>
#> 1 four 105. 82.6 4.07
#> 2 six 183. 122. 3.59
#> 3 eight 353. 209. 3.23
e_table_aggregate(
dat = dat_mtcars_e
, var_names_by = c("cyl", "am")
, var_names_aggregate = c("disp", "hp", "drat", "wt", "qsec")
, func_aggregate = list(sum, sum, mean, mean, sum)
)
#> # A tibble: 6 × 7
#> cyl am disp hp drat wt qsec
#> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 four automatic 408. 254 3.77 2.94 62.9
#> 2 four manual 749. 655 4.18 2.04 148.
#> 3 six automatic 818. 461 3.42 3.39 76.9
#> 4 six manual 465 395 3.81 2.76 49.0
#> 5 eight automatic 4291. 2330 3.12 4.10 206.
#> 6 eight manual 652 599 3.88 3.37 29.1
# assign variables and functions in a list
list_aggregate_var_func <-
list(
`disp` = sum
, `hp` = sum
, `drat` = mean
, `wt` = mean
, `qsec` = sum
)
e_table_aggregate(
dat = dat_mtcars_e
, var_names_by = c("cyl", "am")
, var_names_aggregate = list_aggregate_var_func %>% names()
, func_aggregate = list_aggregate_var_func
)
#> # A tibble: 6 × 7
#> cyl am disp hp drat wt qsec
#> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 four automatic 408. 254 3.77 2.94 62.9
#> 2 four manual 749. 655 4.18 2.04 148.
#> 3 six automatic 818. 461 3.42 3.39 76.9
#> 4 six manual 465 395 3.81 2.76 49.0
#> 5 eight automatic 4291. 2330 3.12 4.10 206.
#> 6 eight manual 652 599 3.88 3.37 29.1