Fit an Analysis of Variance Model

Usage

aov(formula, data=NULL, projections=FALSE, contrasts=NULL, ...)

Arguments

formula A formula specifying the model.
data A data frame in which the variables specified in the formula will be found. If missing, the variables are searched for in the standard way.
projections Logical flag: should the projections be returned?
contrasts A list of contrasts to be used for some of the factors in the formula. These are not used for any Error term, and supplying contrasts for factors only in the Error term will give a warning.
... Arguments to be passed to lm, such as subset or na.action.

Description

This provides a wrapper to lm for fitting linear models to balanced or unbalanced experimental designs. The call to lm sets singular.ok to TRUE to allow for aliased effects.

The main difference from lm is in the way print, summary and so on handle the fit: this is expressed in the traditional language of the analysis of variance rather than of linear models.

If the formula contains a single Error term, this is used to specify error strata, and appropriate models are fitted within each error stratum.

The formula can specify multiple responses.

Value

An object of class c("aov", "lm") or for multiple responses of class c("maov", "aov", "mlm", "lm"). There are print and summary methods available for these.

Author(s)

B.D. Ripley

See Also

lm,alias,proj, model.tables

Examples

## From Venables and Ripley (1997) p.210.
N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0,
           62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)
npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P),
                  K=factor(K), yield=yield)

( npk.aov <- aov(yield ~ block + N*P*K, npk) )
summary(npk.aov)
coefficients(npk.aov)

## as a test, not particularly sensible statistically
op <- options(contrasts=c("contr.helmert", "contr.treatment"))
npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
npk.aovE
summary(npk.aovE)
options(op)# reset to previous


[Package Contents]