gpt4 book ai didi

r - 从统计测试中提取输出

转载 作者:行者123 更新时间:2023-12-05 08:23:08 25 4
gpt4 key购买 nike

我在 R 中运行统计测试(在 RStudio 中运行)。我使用变量名保存结果。我想提取结果的一部分。我该怎么做呢?这是一个最后带有 R 代码的示例。我设置了一个包含四种处理方法的实验,并收集数据。我接下来运行 ANOVA 并执行 Tukey HSD 测试。结果存储在名为“posthoc”的变量中。

我查看并注意到 posthoc 是 1 的列表。在 RStudio 中,我看到名称左侧有一个蓝色小箭头,单击它可提供更多信息。我不确定如何以一种可以用来回答我自己的问题的方式来解释它。

我可以打印(posthoc)并得到以下信息。

#  Tukey multiple comparisons of means
# 95% family-wise confidence level
#
#Fit: aov(formula = Expt1$Treat1 ~ Expt1$Trt)
#
#$`Expt1$Trt`
# diff lwr upr p adj
#B-A 6.523841 2.664755 10.38292569 0.0001372
#C-A 18.584160 14.725075 22.44324507 0.0000000
#D-A 2.643719 -1.215367 6.50280370 0.2854076
#C-B 12.060319 8.201234 15.91940456 0.0000000
#D-B -3.880122 -7.739207 -0.02103681 0.0482260
#D-C -15.940441 -19.799527 -12.08135619 0.0000000

我也可以输入 class(posthoc) 并得到:[1] "TukeyHSD""多组件"

在这种情况下,我需要的是新变量中的所有 p 值。一般的问题是 R 给我输出,我需要能够弄清楚如何提取该输出的特定元素。我可能正在使用 aov、lm、nlme 或其他东西。

Mean1=3.2
Sd1=3.2
Mean2=9.4
Sd2=2.4
Mean3=21.4
Sd3=6.4
Mean4=3.9
Sd4=10.7

Size1=30

Treat1=rnorm(Size1,mean=Mean1, sd=Sd1)
Trt="A"
Treat1M <- data.frame(Treat1, Trt)
Treat1=rnorm(Size1,mean=Mean2, sd=Sd2)
Trt="B"
Treat2M <- data.frame(Treat1, Trt)
Treat1=rnorm(Size1,mean=Mean3, sd=Sd3)
Trt="C"
Treat3M <- data.frame(Treat1, Trt)
Treat1=rnorm(Size1,mean=Mean4, sd=Sd4)
Trt="D"
Treat4M <- data.frame(Treat1, Trt)

Expt1=rbind(Treat1M, Treat2M, Treat3M, Treat4M)

Expt1R<-aov(Expt1$Treat1 ~ Expt1$Trt)
posthoc <-TukeyHSD(x=Expt1R, 'Expt1$Trt', conf.level=.95)

最佳答案

只需使用 posthoc 变量的子集。

posthoc$`Expt1$Trt`[,4]

或者您可以尝试使用 broom 包。

library(broom)
res <- tidy(posthoc)
res
term comparison estimate conf.low conf.high adj.p.value
1 Expt1$Trt B-A 5.904138 1.3639293 10.444346 5.223255e-03
2 Expt1$Trt C-A 16.886340 12.3461316 21.426548 3.919087e-14
3 Expt1$Trt D-A 4.283597 -0.2566111 8.823805 7.189220e-02
4 Expt1$Trt C-B 10.982202 6.4419940 15.522410 3.226398e-08
5 Expt1$Trt D-B -1.620540 -6.1607487 2.919668 7.886097e-01
6 Expt1$Trt D-C -12.602743 -17.1429509 -8.062534 3.235351e-10

tidy 函数的输出是一个 data.frame。因此,您可以使用 res$adj.p.value 访问 p 值。

class(res)
[1] "data.frame"

关于r - 从统计测试中提取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674913/

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