Rev 67599 | Rev 82540 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/stats/man/contrasts.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2014 R Core Team% Distributed under GPL 2 or later\name{contrasts}\alias{contrasts}\alias{contrasts<-}\title{Get and Set Contrast Matrices}\description{Set and view the contrasts associated with a factor.}\usage{contrasts(x, contrasts = TRUE, sparse = FALSE)contrasts(x, how.many) <- value}\arguments{\item{x}{a factor or a logical variable.}\item{contrasts}{logical. See \sQuote{Details}.}\item{sparse}{logical indicating if the result should be sparse(of class \code{\link[Matrix:dgCMatrix-class]{dgCMatrix}}), usingpackage \CRANpkg{Matrix}.}\item{how.many}{How many contrasts should be made. Defaults to oneless than the number of levels of \code{x}. This need not be thesame as the number of columns of \code{value}.}\item{value}{either a numeric matrix (or a sparse or dense matrix of aclass extending \code{\link[Matrix:dMatrix-class]{dMatrix}} frompackage \CRANpkg{Matrix}) whose columns give coefficients forcontrasts in the levels of \code{x}, or the (quoted) name of afunction which computes such matrices.}}\details{If contrasts are not set for a factor the default functions from\code{\link{options}("contrasts")} are used.A logical vector \code{x} is converted into a two-level factor withlevels \code{c(FALSE, TRUE)} (regardless of which levels occur in thevariable).The argument \code{contrasts} is ignored if \code{x} has a matrix\code{contrasts} attribute set. Otherwise if \code{contrasts = TRUE}it is passed to a contrasts function such as\code{\link{contr.treatment}} and if \code{contrasts = FALSE}an identity matrix is returned. Suitable functions have a firstargument which is the character vector of levels, a named argument\code{contrasts} (always called with \code{contrasts = TRUE}) andoptionally a logical argument \code{sparse}.If \code{value} supplies more than \code{how.many} contrasts, thefirst \code{how.many} are used. If too few are supplied, a suitablecontrast matrix is created by extending \code{value} after ensuringits columns are contrasts (orthogonal to the constant term) and notcollinear.}\references{Chambers, J. M. and Hastie, T. J. (1992)\emph{Statistical models.}Chapter 2 of \emph{Statistical Models in S}eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.}\seealso{\code{\link{C}},% ./zC.Rd\code{\link{contr.helmert}},\code{\link{contr.poly}},\code{\link{contr.sum}},\code{\link{contr.treatment}};\code{\link{glm}},\code{\link{aov}},\code{\link{lm}}.}\examples{utils::example(factor)fff <- ff[, drop = TRUE] # reduce to 5 levels.contrasts(fff) # treatment contrasts by defaultcontrasts(C(fff, sum))contrasts(fff, contrasts = FALSE) # the 5x5 identity matrixcontrasts(fff) <- contr.sum(5); contrasts(fff) # set sum contrastscontrasts(fff, 2) <- contr.sum(5); contrasts(fff) # set 2 contrasts# supply 2 contrasts, compute 2 more to make full set of 4.contrasts(fff) <- contr.sum(5)[, 1:2]; contrasts(fff)\donttest{## using sparse contrasts: % useful, once model.matrix() works with these :ffs <- fffcontrasts(ffs) <- contr.sum(5, sparse = TRUE)[, 1:2]; contrasts(ffs)stopifnot(all.equal(ffs, fff))contrasts(ffs) <- contr.sum(5, sparse = TRUE); contrasts(ffs)}}\keyword{design}\keyword{regression}