Rev 25364 | Blame | Last modification | View Log | Download | RSS feed
\name{model.matrix}\alias{model.matrix}\alias{model.matrix.default}\alias{model.matrix.lm}%\alias{model.matrix.lm.null}%\alias{model.matrix.glm.null}\title{Construct Design Matrices}\usage{model.matrix(object, \dots)\method{model.matrix}{default}(object, data = environment(object),contrasts.arg = NULL, xlev = NULL, \dots)}\arguments{\item{object}{an object of an appropriate class. For the defaultmethod, a model formula or terms object.}\item{data}{a data frame created with \code{\link{model.frame}}.}\item{contrasts.arg}{A list, whose entries are contrasts suitable forinput to the \code{\link{contrasts}} replacement function andwhose names are the names of columns of \code{data} containing\code{\link{factor}}s.}\item{xlev}{to be used as argument of \code{\link{model.frame}} if\code{data} has no \code{"terms"} attribute.}\item{\dots}{further arguments passed to or from other methods.}}\description{\code{model.matrix} creates a design matrix.}\details{\code{model.matrix} creates a design matrix from the description givenin \code{terms(formula)}, using the data in \code{data} which mustcontain columns with the same names as would be created by a call to\code{model.frame(formula)} or, more precisely, by evaluating\code{attr(terms(formula), "variables")}. There may be other columnsand the order is not important. If \code{contrasts} is specified itoverrides the default factor coding for that variable.In interactions, the variable whose levels vary fastest is the firstone to appear in the formula (and not in the term), so in \code{~ a +b + b:a} the interaction will have \code{a} varying fastest.By convention, if the response variable also appears on theright-hand side of the formula it is dropped (with a warning),although interactions involving the term are retained.}\value{The design matrix for a regression model with the specified formulaand data.}\references{Chambers, J. M. (1992)\emph{Data for models.}Chapter 3 of \emph{Statistical Models in S}eds J. M. Chambers and T. J. Hastie, Wadsworth \& Brooks/Cole.}\seealso{\code{\link{model.frame}}, \code{\link{model.extract}},\code{\link{terms}}}\examples{data(trees)ff <- log(Volume) ~ log(Height) + log(Girth)str(m <- model.frame(ff, trees))mat <- model.matrix(ff, m)dd <- data.frame(a = gl(3,4), b = gl(4,1,12))# balanced 2-wayoptions("contrasts")model.matrix(~ a + b, dd)model.matrix(~ a + b, dd, contrasts = list(a="contr.sum"))model.matrix(~ a + b, dd, contrasts = list(a="contr.sum", b="contr.poly"))m.orth <- model.matrix(~a+b, dd, contrasts = list(a="contr.helmert"))crossprod(m.orth)# m.orth is ALMOST orthogonal}\keyword{models}