R ANOVA
data <- read.table(header=TRUE, text=' subject sex age before after 1 F old 9.5 7.1 2 M old 10.3 11.0 3 M old 7.5 5.8 4 F old 12.4 8.8 5 M old 10.2 8.6 6 M old 11.0 8.0 7 M young 9.1 3.0 8 F young 7.9 5.2 9 F old 6.6 3.4 10 M young 7.7 4.0 11 M young 9.4 5.3 12 M old 11.6 11.3 13 M young 9.9 4.6 14 F young 8.6 6.4 15 F young 14.3 13.5 16 F old 9.2 4.7 17 M young 9.8 5.1 18 F old 9.9 7.3 19 F young 13.0 9.5 20 M young 10.2 5.4 21 M young 9.0 3.7 22 F young 7.9 6.2 23 M old 10.1 10.0 24 M young 9.0 1.7 25 M young 8.6 2.9 26 M young 9.4 3.2 27 M young 9.7 4.7 28 M young 9.3 4.9 29 F young 10.7 9.8 30 M old 9.3 9.4 ') # Make sure subject column is a factor, so that it's not treated as a continuous # variable. data$subject <- factor(data$subject) |
One way between ANOVA
# One way between: # IV: sex # DV: before aov1 <- aov(before ~ sex, data=data) summary(aov1) |
## Df Sum Sq Mean Sq F value Pr(>F) ## sex 1 1.53 1.529 0.573 0.455 ## Residuals 28 74.70 2.668 |
model.tables(aov1, "means") |
## Tables of means ## Grand mean ## ## 9.703333 ## ## sex ## F M ## 10 9.532 ## rep 11 19.000 |
Two way between ANOVA
# 2x2 between: # IV: sex # IV: age # DV: after # These two calls are equivalent aov2 <- aov(after ~ sex*age, data=data) aov2 <- aov(after ~ sex + age + sex:age, data=data) summary(aov2) |
## Df Sum Sq Mean Sq F value Pr(>F) ## sex 1 16.08 16.08 4.038 0.0550 . ## age 1 38.96 38.96 9.786 0.0043 ** ## sex:age 1 89.61 89.61 22.509 6.6e-05 *** ## Residuals 26 103.51 3.98 ## ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 |
#> #> Error: subject #> Df Sum Sq Mean Sq F value Pr(>F) #> Residuals 29 261.2 9.009 #> #> Error: subject:time #> Df Sum Sq Mean Sq F value Pr(>F) #> time 1 155.53 155.53 71.43 2.59e-09 *** #> Residuals 29 63.14 2.18 #> ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 |
More ANOVAs with within-subjects variables
These examples don’t operate on the data above, but they should illustrate how to do things. First, convert the data to long format and make sure subject is a factor, as shown above.
# # Two within variables # aov.ww <- aov(y ~ w1*w2 + Error(subject/(w1*w2)), data=data_long) # # # One between variable and two within variables # aov.bww <- aov(y ~ b1*w1*w2 + Error(subject/(w1*w2)) + b1, data=data_long) # # # Two between variables and one within variables # aov.bww <- aov(y ~ b1*b2*w1 + Error(subject/(w1)) + b1*b2, data=data_long) |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment






