我想知道是否可以从pairwise.t.test函数中提取t值,因为它只报告p值。在运行重复测量anova之后,我使用pairwise.t.test()进行多次比较,该anova报告了一个显着的主效应。
非常感谢你提前!
发布于 2015-01-24 06:00:23
当试图弄清楚这样的事情时,有一些简单的事情可以尝试(当然,不能保证它们在任何给定的实例中都能工作)。首先要尝试的是查看文档(?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-test中的p值。因此,对你的问题的直接回答是不,你不能提取t-统计。
发布于 2016-03-03 08:10:13
您可以通过编写自定义函数从pairwise.t.test获得t值(以及dfs)。See my previous post。
https://stackoverflow.com/questions/28119426
复制相似问题