R/dog_group_stat2.R

Defines functions dog_group_stat2

Documented in dog_group_stat2

#' Group summary 2
#'
#' This function can group by more than one variable.
#'
#' @param df A data frame
#' @param summary_var The variable used inside dplyr::summarise, e.g. gns = mean(mpg)
#' @param .f The function used in summarise, e.g. mean, or length.
#' @param ... Used to group by more than one variable.
#'
#' @return A tibble
#' @export
#'
#' @examples
#' dog_group_stat2(df = mtcars, summary_var = mpg, .f = mean, am, vs)
#'
dog_group_stat2 <- function(df, summary_var, .f, ...) {

  func <- rlang::enquo(.f)
  func2 <- rlang::as_function(.f)

  summary_var <-rlang::enquo(summary_var)

  #name <- paste0(rlang::quo_name(summary_var), "_", deparse(substitute(.f))) # Base R version.
  name <- paste0(rlang::quo_name(summary_var), "_", rlang::quo_name(func))

  df %>%
    dplyr::group_by(...) %>%
    dplyr::summarise(!!name := func2(!!summary_var),
                     n = n())
}
davidbaniadam/rispacs documentation built on Nov. 4, 2019, 9:43 a.m.