sparse.model.matrix {Matrix} | R Documentation

## Construct Sparse Design / Model Matrices

### Description

Construct a Model or “Design” Matrix

### Usage

    sparse.model.matrix(object, data = environment(object),
                        contrasts.arg = NULL, xlev = NULL, ...)

### Arguments

`object` | an object of an appropriate class. For the default method, a model formula or terms object.
`data` | a data frame created with `model.frame`. If another sort of object, `model.frame` is called first.
`contrasts.arg` | A list, whose entries are contrasts suitable for input to the `contrasts` replacement function and whose names are the names of columns of `data` containing `factor`s.
`xlev` | to be used as argument of `model.frame` if `data` has no `"terms"` attribute.
`...` | further arguments passed to or from other methods.

### Value

a sparse matrix, inheriting from `CsparseMatrix`, typically of class `dgCMatrix`.

### Author(s)

Doug Bates and Martin Maechler, with initial suggestions from Tim Hesterberg.

### See Also

`model.matrix`, ...

### Examples

    dd <- data.frame(a = gl(3,4), b = gl(4,1,12))# balanced 2-way
    options("contrasts") # the default:  "contr.treatment"
    sparse.model.matrix(~ a + b, dd)
    sparse.model.matrix(~ -1+ a + b, dd)# no intercept --> even sparser
    sparse.model.matrix(~ a + b, dd, contrasts = list(a="contr.sum"))
    sparse.model.matrix(~ a + b, dd, contrasts = list(b="contr.SAS"))

    ## Sparse method is equivalent to the traditional one :
    stopifnot(all(sparse.model.matrix(~ a + b, dd) ==
                  Matrix(model.matrix(~ a + b, dd), sparse=TRUE)),
              all(sparse.model.matrix(~ 0+ a + b, dd) ==
                  Matrix(model.matrix(~ 0+ a + b, dd), sparse=TRUE)))

[Package Matrix version 0.999375-33 Index]