Rev 7324 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{aov}\title{Fit an Analysis of Variance Model}\usage{aov(formula, data = NULL, projections = FALSE, contrasts = NULL, \dots)se.aov(object, n, type = "means")}\alias{aov}\alias{print.aov}\alias{print.aovlist}\alias{summary.aov}\alias{summary.aovlist}\alias{print.summary.aov}\alias{print.summary.aovlist}\arguments{\item{formula}{A formula specifying the model.}\item{data}{A data frame in which the variables specified in theformula will be found. If missing, the variables are searched for inthe standard way.}\item{projections}{Logical flag: should the projections be returned?}\item{contrasts}{A list of contrasts to be used for some of the factorsin the formula. These are not used for any \code{Error} term, andsupplying contrasts for factors only in the \code{Error} term will givea warning.}\item{\dots}{Arguments to be passed to \code{lm}, such as \code{subset}or \code{na.action}.}}\description{Fit an analysis of variance model by a call to \code{lm} for each stratum.}\details{This provides a wrapper to \code{lm} for fitting linear models tobalanced or unbalanced experimental designs.The main difference from \code{lm} is in the way \code{print},\code{summary} and so on handle the fit: this is expressed in thetraditional language of the analysis of variance rather than of linearmodels.If the formula contains a single \code{Error} term, this is used tospecify error strata, and appropriate models are fitted within eacherror stratum.The formula can specify multiple responses.}\value{An object of class \code{c("aov", "lm")} or for multiple responsesof class \code{c("maov", "aov", "mlm", "lm")} or for multiple errorstrata of class \code{"aovlist"}. There are\code{\link{print}} and \code{\link{summary}} methods available for these.}\author{B. D. Ripley}\seealso{\code{\link{lm}}, \code{\link{alias}}, \code{\link{proj}},\code{\link{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 statisticallyop <- options(contrasts=c("contr.helmert", "contr.treatment"))npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)npk.aovEsummary(npk.aovE)options(op)# reset to previous}\keyword{models}\keyword{regression}