修改pairwise.t.test和pairwise.table以返回t值

时间:2018-06-06 13:16:07

标签: r

我试图让pairwise.t.test返回t值和p值。问题How to get df and t-values from pairwise.t.test?的答案修改了pairwise.t.test的代码以获得p值,t值和自由度,但是通过对t检验进行3次调用来获取它们而不是存储3个值,这正是我想要做的。

我修改了pairwise.t.test,所以compare.levels函数现在返回一个列表,例如:

 compare.levels <- function(i, j) {
      output <- list()
      xi <- x[as.integer(g) == i]
      xj <- x[as.integer(g) == j]
      out <- t.test(xi, xj, paired = paired, alternative = alternative, 
                    ...)
      output$t.value <- out$statistic
      output$p.value <- out$p.value
      output$df <- out$parameter
      return(output)
    }

但是使用pairwise.table中的以下代码调用compare.levels:

  pp <- outer(ix[-1L], ix[-length(ix)],
          function(ivec, jvec)
            sapply(seq_along(ivec),
                   function(k) {
                     i <- ivec[k]
                     j <- jvec[k]
                     if (i > j)
                       compare.levels(i, j)
                     else
                       NA
                   }))

如果我用as.list(c(NA,NA,NA))替换NA,则会出现以下错误:

Error in dim(robj) <- c(dX, dY) : 
  dims [product 121] do not match the length of object [363] 

我理解为什么我收到错误但我不明白如何修改有问题的行来修复它。有什么指针吗?

0 个答案:

没有答案