我想知道我是否可以从pairwise.t.test函数中提取t值,因为它只报告p值。 在运行重复测量anova后,我使用了pairwise.t.test()进行多重比较,该anova报告了显着的主效应。
提前谢谢你!
答案 0 :(得分: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 :(得分:1)
您可以通过编写自定义函数从pairwise.t.test获取t值(以及dfs)。 See my previous post