R/factor_split_test.R

Defines functions factor_split_test

Documented in factor_split_test

#' factor_split_test
#'
#' Run a t.test for each subgroup in a dataset.
#'
#' @param df_ dataframe or tibble
#' @param factor_split factor
#' @param factor factor
#' @param value response variable
#' @param method_ test method. default: t.test
#'
#' @importFrom stats as.formula
#' @importFrom tibble as_tibble
#' @importFrom magrittr %>%
#' @import dplyr
#' @import ggpubr
#' @import purrr
#' @return
#' @export
#'
#' @examples
#' factor_split_test(pbmc_div_mut, "label_subtype", "status", "mutations", "t.test")
factor_split_test <- function(df_, factor_split, factor, value, method_="t.test") {
  . <- list()
  formula_str <- sprintf("%s ~ %s", value, factor)
  formula_    <- as.formula(formula_str)
  models <-
    as_tibble(df_) %>%
    select(!!sym(factor_split), !!sym(factor), !!sym(value)) %>%
    split(.[[factor_split]]) %>%
    map(~compare_means(formula_, ., method=method_)) %>%
    map2(., names(.), function(x, y){bind_rows(x) %>% mutate(factor=y)}) %>%
    bind_rows()
  models
}
thierrycnam/igfuns documentation built on May 4, 2020, 3:21 a.m.