R中aov的P值

时间:2015-09-11 16:18:53

标签: r list anova

我在R中进行模拟研究。基本上,我生成假数据集,然后使用aov函数对数据运行ANOVA。但是我很难提取p值。之前的问题无济于事(Extract p-value from aov) - 我正在进行混合ANOVA。

首先我有一个ANOVA:

results <- summary(aov(dv~(A*B*C*D*E)+Error(subj/(A*B*C*D)), data = mdata))  #  conduct repeated measures ANOVA

生成此输出:

Error: subj
      Df   Sum Sq Mean Sq F value Pr(>F)
E          1  1039157 1039157    0.95  0.334
Residuals 58 63428016 1093586               

Error: subj:A
      Df Sum Sq Mean Sq F value Pr(>F)
A          1   1996    1996   0.220  0.641
A:E        1   2294    2294   0.253  0.617
Residuals 58 526389    9076   

...

我正在截断空间的输出。我想要的效果名称(A或A:E)的p值列表。我已经成功了一半,但它很混乱。我可以使用我制作的这个get_p函数来提取p值。

#Function
get_p = function(results,head){
  results[[1]]$'Pr(>F)'
}

#Get p-values
p <- sapply(results, get_p)

我最终得到了这个:

$`Error: subj`
[1] 0.3337094        NA

$`Error: subj:A`
[1] 0.6408826 0.6170181        NA

...

有关如何获取p值列表(.6408,.6178)和效果名称('A','A:E')的任何想法?

1 个答案:

答案 0 :(得分:0)

我找到了答案,似乎是:

 get_p1 = function(results){
    results[[1]]$'Pr(>F)'[[1]]
 }
 get_p2 = function(results){
    results[[1]]$'Pr(>F)'[[2]]
 }
 pvals <- c(sapply(results, get_p1), sapply(results, get_p2))