Convenience Methods for Setting Contrasts
contrasts.Rd
This package provides modified versions of
contr.treatment
and
contr.sum
. contr.sum
gains an optional base
argument, analog to the
one of contr.treatment
, furthermore,
the base
argument may be the name of a
factor level.
contr
returns a function that calls either
contr.treatment
, contr.sum
, etc.,
according to the value given to its first argument.
The contrasts
method for "item"
objects
returns a contrast matrix or a function to produce
a contrast matrix for the factor into which
the item would be coerced via as.factor
or as.ordered
.
This matrix or function can be specified by
using contrasts(x)<-value
Usage
contr(type,...)
contr.treatment(n, base=1,contrasts=TRUE)
contr.sum(n,base=NULL,contrasts=TRUE)
# S4 method for class 'item'
contrasts(x,contrasts=TRUE,...)
# S4 method for class 'item'
contrasts(x, how.many) <- value
# These methods are defined implicitely by making 'contrasts' generic.
# S4 method for class 'ANY'
contrasts(x,contrasts=TRUE,...)
# S4 method for class 'ANY'
contrasts(x, how.many) <- value
Arguments
- type
a character vector, specifying the type of the contrasts. This argument should have a value such that, if e.g.
type="something"
, then there is a functioncontr.something
that produces a contrast matrix.- ...
further arguments, passed to
contr.treatment
, etc.- n
a number of factor levels or a vector of factor levels names, see e.g.
contr.treatment
.- base
a number of a factor level or the names of a factor level, which specifies the baseline category, see e.g.
contr.treatment
or NULL.- contrasts
a logical value, see
contrasts
- how.many
the number of contrasts to generate, see
contrasts
- x
a factor or an object of class "item"
- value
a matrix, a function or the name of a function
Value
contr
returns a funtion that calls one of contr.treatment
,
contr.sum,...
.
contr.treatment
and contr.sum
return contrast matrices.
contrasts(x)
returns the "contrasts" attribute of an
object, which may be a function name, a function, a contrast matrix or NULL.
Examples
ctr.t <- contr("treatment",base="c")
ctr.t
#> function (n, contrasts = TRUE)
#> contr.treatment(n = n, base = "c", contrasts = contrasts)
#> <environment: 0x55b7c4005048>
ctr.s <- contr("sum",base="c")
ctr.h <- contr("helmert")
ctr.t(letters[1:7])
#> a b d e f g
#> a 1 0 0 0 0 0
#> b 0 1 0 0 0 0
#> c 0 0 0 0 0 0
#> d 0 0 1 0 0 0
#> e 0 0 0 1 0 0
#> f 0 0 0 0 1 0
#> g 0 0 0 0 0 1
ctr.s(letters[1:7])
#> a b d e f g
#> a 1 0 0 0 0 0
#> b 0 1 0 0 0 0
#> c -1 -1 -1 -1 -1 -1
#> d 0 0 1 0 0 0
#> e 0 0 0 1 0 0
#> f 0 0 0 0 1 0
#> g 0 0 0 0 0 1
ctr.h(letters[1:7])
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> a -1 -1 -1 -1 -1 -1
#> b 1 -1 -1 -1 -1 -1
#> c 0 2 -1 -1 -1 -1
#> d 0 0 3 -1 -1 -1
#> e 0 0 0 4 -1 -1
#> f 0 0 0 0 5 -1
#> g 0 0 0 0 0 6
x <- factor(rep(letters[1:5],3))
contrasts(x)
#> b c d e
#> a 0 0 0 0
#> b 1 0 0 0
#> c 0 1 0 0
#> d 0 0 1 0
#> e 0 0 0 1
x <- as.item(x)
contrasts(x)
#> b c d e
#> a 0 0 0 0
#> b 1 0 0 0
#> c 0 1 0 0
#> d 0 0 1 0
#> e 0 0 0 1
contrasts(x) <- contr.sum(letters[1:5],base="c")
contrasts(x)
#> a b d e
#> a 1 0 0 0
#> b 0 1 0 0
#> c -1 -1 -1 -1
#> d 0 0 1 0
#> e 0 0 0 1
missing.values(x) <- 5
contrasts(x)
#> Warning: contrast matrix has wrong rows, deleting it
#> NULL
contrasts(as.factor(x))
#> Warning: contrast matrix has wrong rows, deleting it
#> b c d
#> a 0 0 0
#> b 1 0 0
#> c 0 1 0
#> d 0 0 1
# Obviously setting missing values after specifying
# contrast matrix breaks the contrasts.
# Using the 'contr' function, however, prevents this:
missing.values(x) <- NULL
contrasts(x) <- contr("sum",base="c")
contrasts(x)
#> a b d e
#> a 1 0 0 0
#> b 0 1 0 0
#> c -1 -1 -1 -1
#> d 0 0 1 0
#> e 0 0 0 1
missing.values(x) <- 5
contrasts(x)
#> a b d
#> a 1 0 0
#> b 0 1 0
#> c -1 -1 -1
#> d 0 0 1
contrasts(as.factor(x))
#> a b d
#> a 1 0 0
#> b 0 1 0
#> c -1 -1 -1
#> d 0 0 1