R/td.test.R

Defines functions td.test

td.test <-function(measure, group, alternative = c(), verbose = TRUE) {
  group <- droplevels(as.factor(group))
  gg <- levels(as.factor(group))
  lev <- (as.numeric(as.factor(group)))
  g1 <- gg[1]
  g2 <- gg[2]
  N.g1 <- length(na.omit(measure[group == g1]))
  N.g2 <- length(na.omit(measure[group == g2]))

  var.res <- var.test(measure ~ group)

  if(var.res$p.value < .05) {
    var.equal = F
  } else {var.equal = T}
  if(missing(alternative)) {
    t.res <- t.test(measure ~ group, var.equal = var.equal)
  } else {
    t.res <- t.test(measure ~ group, var.equal = var.equal, alternative = alternative)
  }

  es <- compute.es::tes(t.res$statistic, N.g1, N.g2, verbose = F)$d

  am <- mean(measure[group == g1], na.rm = T)
  asd <- sd(measure[group == g1], na.rm = T)
  bm <- mean(measure[group == g2], na.rm = T)
  bsd <- sd(measure[group == g2], na.rm = T)

  a <- paste(as.character(levels(group)[1]),' ',
             '(M=',round(am,2),', SD=', round(asd,2),')',
             ' - N=',N.g1,
             sep = '')
  b <- paste(as.character(levels(group)[2]),' ',
             '(M=',round(bm,2),', SD=', round(bsd,2),')',
             ' - N=',N.g2,
             sep = '')
  t <- paste('t-test: ','t(', round(t.res$parameter, 2),')=',round(t.res$statistic,2),', p=', round(t.res$p.value,4), sep = '')
  d <- paste('d=', es, sep = '')
  v <- paste('var: ','F(', var.res$parameter[1],',',var.res$parameter[2],')=',round(var.res$statistic,2),', p=', round(var.res$p.value,4), sep = '')

  if(verbose == F) {
    results <- list(
      g1       = g1,
      N.g1     = N.g1,
      mean.1   = am,
      sd.1     =asd,
      g2       = g2,
      N.g2     = N.g2,
      mean.2   = bm,
      sd.2     =bsd,
      var.statistic    = var.res$statistic,
      var.p.value    = var.res$p.value,
      t.statistic   = t.res$statistic,
      t.p.value  = t.res$p.value,
      effectSize_d        = es
    )

  } else {

    cat(paste(a,b,v,t,d, sep = '\n'))

    results <- list(
      g1       = g1,
      N.g1     = N.g1,
      mean.1   = am,
      sd.1     =asd,
      g2       = g2,
      N.g2     = N.g2,
      mean.2   = bm,
      sd.2     =bsd,
      var.statistic    = var.res$statistic,
      var.p.value    = var.res$p.value,
      t.statistic   = t.res$statistic,
      t.p.value  = t.res$p.value,
      effectSize_d        = es
    )
  }
}
# td.test(measure = mtcars$mpg, group = mtcars$vs.F, verbose = T)
alemiani/explora documentation built on May 28, 2019, 4:54 p.m.