我有一个包含 25 列的列表,我正在通过 Dunnett 测试按组(4 个级别)对其进行测试。我能够使用sapply
函数让 Dunnett 按组对所有列起作用,但在将 p 值拉入表中时遇到一些问题。下面是我尝试使用 iris 数据集执行的操作的示例。
iris <- iris
iris$group <- ifelse(iris$Species =='setosa', 1,
ifelse(iris$Species =='versicolor', 2,
ifelse(iris$Species =='virginica', 3,
0)))
iris$group <- as.factor(iris$group)
summary(glht(aov(Sepal.Length ~ group, iris), linfct=mcp(group="Dunnett" )))
test
iris$Species
dunnet_model_iris <- sapply(iris[-c(5,6)], function(y, f) summary(glht(aov(y ~ f, iris), linfct=mcp(f="Dunnett"))), f = iris$Species)
names(dunnet_model_iris[[10]]$pvalues)
p_value <- dunnet_model[[10]]$pvalues
p_value
我可以通过 dunnet_model[[10]]$pvalues 获取每列的 p 值(每列相距 10 行(例如:第二列是 dunnet_model[[20]]$pvalues)。 ,我的数据集有 25 列,所以我会从 10 到 250 列。我想创建一个像这样的表:
2-1 3-1
Sepal.Length 1.44E-15 2.22E-16
Sepal.Width 1.44E-15 2.22E-16
Petal.Length 1.44E-15 2.22E-16
问题:如何将每列的所有 Dunnett 比较 P 值提取到单个表中?
我在寻找答案时遇到了一些麻烦。如果有人有一些建议,我们将不胜感激。我并不期待任何代码,只是一些想法来帮助阐明我的情况。