gpt4 book ai didi

r - 将 Dunnett 检验的 P 值按变量提取到表中

转载 作者:行者123 更新时间:2023-12-04 10:36:29 24 4
gpt4 key购买 nike

我有一个包含 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 值提取到单个表中?

我在寻找答案时遇到了一些麻烦。如果有人有一些建议,将不胜感激。我不期待任何代码,只是一些想法来帮助阐明我的情况。

最佳答案

我们需要提取 test$pvalues将模型保存在 list 中后与 lapply

library(multcomp)
dunnet_model_iris <- lapply(iris[-c(5,6)], function(y, f)
summary(glht(aov(y ~ f, iris), linfct=mcp(f="Dunnett"))), f = iris$Species)
t(sapply(dunnet_model_iris, function(x) x$test$pvalues))
# [,1] [,2]
#Sepal.Length 1.443290e-15 2.220446e-16
#Sepal.Width 5.551115e-16 9.074667e-10
#Petal.Length 1.110223e-16 2.220446e-16
#Petal.Width -2.220446e-16 1.110223e-16

或者使用 OP 创建“dunnet_model_iris”的方法
t(sapply(dunnet_model_iris["test",], `[[`, "pvalues"))

关于r - 将 Dunnett 检验的 P 值按变量提取到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com