## Construct design matrices

## Usage

    model.matrix(object, ...)
    model.matrix.default(formula, data, contrasts=NULL)

## Arguments

`formula` | a model formula or terms object.
`data` | a data frame created with `model.frame`.
`contrasts` | A list, whose entries are contrasts suitable for input to the `contrasts` function and whose names are the names of columns of `data` containing `factor`s.

## Description

Creates a design matrix from the description given in `terms(formula)`, using the data in `data` which must contain columns with the same names as would be created by a call to `model.frame(formula)` or, more precisely, by evaluating `attr(terms(formula), "variables")`. There may be other columns and the order is not important. If `contrasts` is specified it overrides the default factor coding for that variable.

## Value

The design matrix for a regression model with the specified formula and data.

## References

Chambers and Hastie: "Statistical Models in S".

## See Also

`model.frame`, `model.data.frame`, `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-way
    options("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

[Package Contents]