contrasts
Contrasts Attribute
Description
Sets or gets the contrast matrix for a factor.
Usage
 contrasts(x, contrasts = TRUE, sparse = FALSE)
 contrasts(x, how.many) <- value
Arguments
| x | a factor or ordered factor. | 
| contrasts | a logical value that specifies if the contrasts should be returned. 
If TRUE (default), a nlevels(x) by nlevels(x) - 1
matrix, with row and column names levels(x), is returned.
If FALSE, a nlevels(x) by nlevels(x)
identity matrix, with row and column names levels(x),
is returned. | 
| sparse | a logical value that indicates if the output is a sparse matrix.
Not used in this release. | 
| how.many | an integer that specifies how many contrasts to return. This value can 
be greater than, less than, or the same as the number of columns in 
value. The default is to return one fewer contrast than the 
number of levels in x. | 
| value | a matrix, a function that specifies the contrasts matrix to use, or a 
character string that names a contrasts function.
You can specify the following: 
 a matrix that contains the same number of rows as there are levels in x (the number of columns should be x - 1). This output is common for the standard contrast functions, such as contr.sum(levels(x)).
 a contrasts function, such as contr.poly or 
function(n, ...)contr.treatment(n, base=2, ...).
 a character string that names a contrasts function, such as "contr.treatment", in which case the matrix will be generated by calling value(levels(x)).
 | 
 
Details
The contrasts() function returns the contrasts matrix of 
x, which is computed using the contrasts attribute 
assigned by contrasts(x) <- contr if it exists.  Otherwise, the 
contrasts matrix is computed based on 
getOption("contrasts"): ordinary factors will use the 
first entry and ordered factors the second.
The model.matrix function has an optional contrasts 
argument that may be used to override contrasts previously attached to 
the data; it does this by calling contrasts <-.
There are three functions that specify contrasts for factor variables 
C, 
contrasts <-, and 
options.
-  options(contrasts=c(unordered,ordered)) lets you specify 
names of the contrasts functions that you generally want to use for 
ordinary and ordered factors.
-  contrasts <- function lets you specify a contrast 
attribute that you generally want to use for a particular factor 
variable in all models.
-  C function in a model formula lets you specify a contrast 
to be used for a particular factor in a particular model. You may also 
use the contrasts argument to model.matrix, hence 
to all the standard statistical modelling functions like lm, instead of putting calls to C in your formula.)
Value
returns the contrasts matrix for levels of the factor x, if 
contrasts is TRUE (the default).  Otherwise it returns 
the nlevels(x) by nlevels(x) identity matrix.
The contrasts assignment function attaches the contrasts
attribute to x.  This attribute contains either the name of
contrasts function to use or the contrasts matrix itself, depending on
the format of the value argument.
See Also
Examples
height <- c(72, 60, 73, 58, 71, 30)
type <- factor(c("I", "II", "I", "II", "I", "III"),
               levels=c("I","II","III"))
contrasts(type) # contrasts made using getOption("contrasts")[1]
lm(height ~ type)
# Now use SAS-style treatment contrasts for type
contrasts(type) <- "contr.SAS"
lm(height ~ type) # coefficients change but fitted values do not
model.matrix(~type)
# Now use sum contrasts for type
model.matrix(~type, contrasts=list(type="contr.sum"))