[prev in list] [next in list] [prev in thread] [next in thread] 

List:       r-help
Subject:    Re: [R] Indexing ANOVA table
From:       "Pascal A. Niklaus" <Pascal.Niklaus () unibas ! ch>
Date:       2003-12-01 9:28:22
[Download RAW message or body]

Prof Brian Ripley wrote:

> On Sat, 29 Nov 2003 Pascal.Niklaus@unibas.ch wrote:
> 
> 
> 
> > Hi all,
> > 
> > I'd like to extract a value from an ANOVA table, but experience the following
> > problem:
> > 
> > ### This works:
> > 
> > 
> > 
> > > s.pseudo <- summary(aov(m ~ block + mix*graz,data=split1))
> > > s.pseudo
> > > 
> > > 
> > Df  Sum Sq Mean Sq F value  Pr(>F)
> > block        2 1114.66  557.33  4.4296 0.04192 *
> > mix          1    6.14    6.14  0.0488 0.82956
> > graz         2    1.45    0.72  0.0057 0.99427
> > mix:graz     2    3.82    1.91  0.0152 0.98495
> > Residuals   10 1258.19  125.82
> > ---
> > Signif. codes:  0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
> > 
> > 
> > > s.pseudo[[1]]["mix ","Pr(>F)"]
> > > 
> > > 
> > [1] 0.8295556
> > 
> > ### But this doesn't -- why?
> > 
> > 
> 
> Why should it?
> 
> 
> 
> > > s.split <-  summary(aov(m ~ block + mix*graz + Error(Plot),data=split1))
> > > s.split
> > > 
> > > 
> > Error: Plot
> > Df  Sum Sq Mean Sq F value Pr(>F)
> > block      2 1114.66  557.33  0.8994 0.5265
> > mix        1    6.14    6.14  0.0099 0.9298
> > Residuals  2 1239.37  619.68
> > 
> > Error: Within
> > Df  Sum Sq Mean Sq F value Pr(>F)
> > graz       2  1.4464  0.7232  0.3073 0.7437
> > mix:graz   2  3.8206  1.9103  0.8117 0.4776
> > Residuals  8 18.8278  2.3535
> > 
> > 
> > > s.split[["Error: Plot"]]  ## extracting first list element works
> > > 
> > > 
> > Df  Sum Sq Mean Sq F value Pr(>F)
> > block      2 1114.66  557.33  0.8994 0.5265
> > mix        1    6.14    6.14  0.0099 0.9298
> > Residuals  2 1239.37  619.68
> > 
> > 
> > > s.split[["Error: Plot"]]["mix ","Pr(>F)"]  ### <== FAILS
> > > 
> > > 
> > Error in s.split[["Error: Plot"]]["mix ", "Pr(>F)"] :
> > incorrect number of dimensions
> > 
> > 
> 
> You should have written
> 
> s.split[["Error: Plot"]][[1]]["mix ","Pr(>F)"]
> 
> 
> 
> > So where is the difference between the two?
> > 
> > 
> 
> One is an "aov" object, the other an "aovlist" object.  Take a closer look 
> at print.summary.aov, for example.
> 
> More generally, learn how to look at R objects instead of assuming you
> know what you are doing: unclass(s.split[["Error: Plot"]]) would have been
> informative.
> 
> 
Thanks for the help - it works now.

I had of course tried str(s.split) and str(s.split[["Error: Plot"]]) and also [ ] and \
[[ ]], but wrongly thought that the remaining "List of 1" was because I extracted a \
slice of the list instead of a specific list element only... Need to look better next \
time...

Pascal


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic