Hi, I'm a new R user, coming from SPSS, and without a particularly strong stats background. I've got a data set that I'd like to do a mixed-design ANOVA with. No missing values. Here's the summary: summary(learnDat.ae) Type Subject idio struct TrainErrs cond 0:20 11 : 3 idio :28 ae :58 Min. : 0.00 idioae :28 2:19 12 : 3 nonidio:30 fact: 0 1st Qu.: 6.25 idiofact : 0 3:19 14 : 3 Median :11.50 nonidioae:30 15 : 3 Mean :13.40 18 : 3 3rd Qu.:16.00 2 : 3 Max. :59.00 (Other):40 Note that the TrainErrs column is the only numeric column, and I forced everything else to be a factor. (Is that correct?) I then do the following: aov.errs.ae <- aov(TrainErrs ~ (idio*Type) + Error(Subject/Type) + (idio), learnDat.ae) So, idio is between-subjects and Type is within-subjects. This is based on examples I've found elsewhere. summary(aov.errs.ae) This seems to work fine: Error: Subject Df Sum Sq Mean Sq F value Pr(>F) idio 1 179 179 0.89 0.36 Type 1 210 210 1.05 0.32 Residuals 17 3401 200 Error: Subject:Type Df Sum Sq Mean Sq F value Pr(>F) Type 2 515 258 2.44 0.103 idio:Type 2 680 340 3.22 0.053 . Residuals 34 3595 106 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Now the problem:> model.tables(aov.errs.ae,"means")Error in outer(rownames(efficiency), colnames(efficiency), paste)[eff.used] : invalid subscript type 'list' In addition: Warning message: In any(efficiency) : coercing argument of type 'double' to logical All the examples and manuals I've found said this should work. When I did a fully between-subjects ANOVA on another data set, I had no problem with model.tables. I have no idea what to make of this error message. I've tried a number of variations on things, with no improvement. This is R version 2.7.2 (2008-08-25), running on Redhat, x86_64. Suggestions? Thanks! -Harlan [[alternative HTML version deleted]]
Your design seems to be unbalanced: multistatum aov is intended for balanced designs. My guess is that one idio subject has two Type=1 observations: in which case try removing one of them. On Tue, 16 Dec 2008, Harlan Harris wrote:> Hi, I'm a new R user, coming from SPSS, and without a particularly strong > stats background. > > I've got a data set that I'd like to do a mixed-design ANOVA with. No > missing values. Here's the summary: > > summary(learnDat.ae) > Type Subject idio struct TrainErrs cond > 0:20 11 : 3 idio :28 ae :58 Min. : 0.00 idioae :28 > 2:19 12 : 3 nonidio:30 fact: 0 1st Qu.: 6.25 idiofact : 0 > 3:19 14 : 3 Median :11.50 nonidioae:30 > 15 : 3 Mean :13.40 > 18 : 3 3rd Qu.:16.00 > 2 : 3 Max. :59.00 > (Other):40 > > Note that the TrainErrs column is the only numeric column, and I forced > everything else to be a factor. (Is that correct?) > > I then do the following: > > aov.errs.ae <- aov(TrainErrs ~ (idio*Type) + Error(Subject/Type) + (idio), > learnDat.ae) > > So, idio is between-subjects and Type is within-subjects. This is based on > examples I've found elsewhere. > > summary(aov.errs.ae) > > This seems to work fine: > > Error: Subject > Df Sum Sq Mean Sq F value Pr(>F) > idio 1 179 179 0.89 0.36 > Type 1 210 210 1.05 0.32 > Residuals 17 3401 200 > > Error: Subject:Type > Df Sum Sq Mean Sq F value Pr(>F) > Type 2 515 258 2.44 0.103 > idio:Type 2 680 340 3.22 0.053 . > Residuals 34 3595 106 > --- > Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > > > Now the problem: > >> model.tables(aov.errs.ae,"means") > Error in outer(rownames(efficiency), colnames(efficiency), paste)[eff.used] > : > invalid subscript type 'list' > In addition: Warning message: > In any(efficiency) : coercing argument of type 'double' to logical > > All the examples and manuals I've found said this should work. When I did a > fully between-subjects ANOVA on another data set, I had no problem with > model.tables. I have no idea what to make of this error message. I've tried > a number of variations on things, with no improvement. > > This is R version 2.7.2 (2008-08-25), running on Redhat, x86_64. > > Suggestions? Thanks! > > -Harlan > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
In addition, your model statement is odd. Note that within-S factor Type is tested with both the type I and the type II residuals, whereas only the latter should be used. Try this model instead: aov.errs.ae <- aov(TrainErrs ~ idio*Type + Error(Subject/ Type),data=learnDat.ae) or, for more clarity: aov.errs.ae <- aov(TrainErrs ~ idio*Type + Error(Subject +Subject:Type),data=learnDat.ae), which explicitly denotes the two error strata. On 17-Dec-08, at 4:00 AM, r-help-request at r-project.org wrote:> Your design seems to be unbalanced: multistatum aov is intended for > balanced designs. My guess is that one idio subject has two Type=1 > observations: in which case try removing one of them. > > On Tue, 16 Dec 2008, Harlan Harris wrote: > >> Hi, I'm a new R user, coming from SPSS, and without a particularly >> strong >> stats background. >> >> I've got a data set that I'd like to do a mixed-design ANOVA with. No >> missing values. Here's the summary: >> >> summary(learnDat.ae) >> Type Subject idio struct TrainErrs >> cond >> 0:20 11 : 3 idio :28 ae :58 Min. : 0.00 >> idioae :28 >> 2:19 12 : 3 nonidio:30 fact: 0 1st Qu.: 6.25 >> idiofact : 0 >> 3:19 14 : 3 Median :11.50 >> nonidioae:30 >> 15 : 3 Mean :13.40 >> 18 : 3 3rd Qu.:16.00 >> 2 : 3 Max. :59.00 >> (Other):40 >> >> Note that the TrainErrs column is the only numeric column, and I >> forced >> everything else to be a factor. (Is that correct?) >> >> I then do the following: >> >> aov.errs.ae <- aov(TrainErrs ~ (idio*Type) + Error(Subject/Type) + >> (idio), >> learnDat.ae) >> >> So, idio is between-subjects and Type is within-subjects. This is >> based on >> examples I've found elsewhere. >> >> summary(aov.errs.ae) >> >> This seems to work fine: >> >> Error: Subject >> Df Sum Sq Mean Sq F value Pr(>F) >> idio 1 179 179 0.89 0.36 >> Type 1 210 210 1.05 0.32 >> Residuals 17 3401 200 >> >> Error: Subject:Type >> Df Sum Sq Mean Sq F value Pr(>F) >> Type 2 515 258 2.44 0.103 >> idio:Type 2 680 340 3.22 0.053 . >> Residuals 34 3595 106 >> --- >> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 >> >-- Please avoid sending me Word or PowerPoint attachments. See <http://www.gnu.org/philosophy/no-word-attachments.html> -Dr. John R. Vokey