2014-11-17 140 views
1

我有一个看起来像这样的数据:只对R中的ANOVA循环打印重要的结果

 KAFFE SAFT FERSKVARE HERMETIKK ..... K 
     35 23.91  17.3   70.2   1 
     53 30.13  27.4   75.7   1 
     35 34.54  17.3   81.1   2 
     32 31.93  47.3   92.7   2 
     34 54.69  17.2   88.4   2 
     35 34.69  19.1   81.5   3 
     54 25.63  18.3   92.1   3 
     34 46.65  18.6   76.6   3 
     36 38.21  23.3   79.9   3 

我用一个循环来创建一个方差分析和事后检验为每个数据

rcluso is my data frame 
K is the categorical variable located at the end column 



sink("AnovaTest.doc") 
     for(i in 1:(ncol(rcluso)-1)){ 
     columns <- names(rcluso[i]) 
     anovaresult<- summary(aov(rcluso[,i]~K,data=rcluso)) 
     posthocresult <- TukeyHSD(aov(rcluso[,i]~K,data=rcluso)) 

    print(columns) 
    print(anovaresult) 
    print(posthocresult) 
    } 
    sink() 

问题是,我只想获得打印出来的anova的重要结果,并且我还想为每个重要结果创建一个条形图。

你们可以帮我解决这个问题吗?提前致谢。

回答

2

如果获得anova()输出而不是summary(),则可以访问p值。

取代你

anovaresult<- summary(aov(rcluso[,i]~K,data=rcluso)) 

anovaresult<- anova(aov(rcluso[,i]~K,data=rcluso)) 

那么你可以有条件地使用if()语句打印结果如

if(anovaresult$Pr[1] < 0.05){ print(anovaresult) }