从pairwise.t.test中提取t值

5

我想知道是否可以从pairwise.t.test函数中提取t值,因为它只报告p值。我在运行重复测量anova后使用了pairwise.t.test()进行多重比较,该anova报告了显著的主效应。

非常感谢您的帮助!


这更像是一个适合在 Stack Overflow 上提问的问题。 - DatamineR
2个回答

5
尝试解决此类问题时,有一些简单的方法可尝试(当然,并不保证在任何情况下都有效)。第一件要尝试的事情是查看文档(?pairwise.t.test)并查看Value下列出了什么。在这种情况下,它只显示:

类“pairwise.htest”的对象

第二个尝试的方法是获取示例对象并将其分配给一个变量,然后可以运行str(obj)。以下使用文档中的示例:

attach(airquality)
Month <- factor(Month, labels = month.abb[5:9])
obj <- pairwise.t.test(Ozone, Month)
str(obj)
List of 4
 $ method         : chr "t tests with pooled SD"
 $ data.name      : chr "Ozone and Month"
 $ p.value        : num [1:4, 1:4] 1 0.000264 0.000195 1 NA ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:4] "Jun" "Jul" "Aug" "Sep"
  .. ..$ : chr [1:4] "May" "Jun" "Jul" "Aug"
 $ p.adjust.method: chr "holm"
 - attr(*, "class")= chr "pairwise.htest"

不幸的是,这并没有展示我们想要看到的内容(例如类似于$ t.stat的东西)。

你最后的选择就是查看代码。你可以在命令提示符下输入函数调用而不带括号来获取它:

> pairwise.t.test
function (x, g, p.adjust.method = p.adjust.methods, pool.sd = !paired, 
    paired = FALSE, alternative = c("two.sided", "less", "greater"), 
    ...) 
{
    <code omitted>
    if (pool.sd) {
        <code omitted>
        }
    }
    else {
        <code omitted>
        compare.levels <- function(i, j) {
            xi <- x[as.integer(g) == i]
            xj <- x[as.integer(g) == j]
            t.test(xi, xj, paired = paired, alternative = alternative, 
                ...)$p.value
        }
    }
    PVAL <- pairwise.table(compare.levels, levels(g), p.adjust.method)
    ans <- list(method = METHOD, data.name = DNAME, p.value = PVAL, 
        p.adjust.method = p.adjust.method)
    class(ans) <- "pairwise.htest"
    ans
}

重点部分是定义的函数compare.levels,它仅保留基础t检验的p值。因此,对于你的问题直截了当的答案是不行,你不能提取t统计量。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接