stdize {ffmanova} | R Documentation |
Centering and scaling of matrices
Description
Function to center and/or scale the coloumns of a matrix in various ways. The coloumns can be centered with their means or with supplied values, and they can be scaled with their standard deviations or with supplied values.
Usage
stdize(x, center = TRUE, scale = TRUE, avoid.zero.divisor = FALSE)
stdize3(x, center = TRUE, scale = TRUE, avoid.zero.divisor = FALSE)
Arguments
x |
A matrix. |
center |
A logical, or a numeric vector. The values to subtract from
each column. If |
scale |
A lgical, or a numeric vector. The values to divide each
column with. If |
avoid.zero.divisor |
A logical. If |
Details
stdize
standardizes the coloumns of a matrix by subtracting their
means (or the supplied values) and dividing by their standard deviations (or
the supplied values).
If avoid.zero.divisor
is TRUE
, division-by-zero is guarded
against by substituting any 0
in center
(either calculated or
supplied) with 1
prior to division.
The main difference between stdize
and scale
is that
stdize
divides by the standard deviations even when center
is
not TRUE
.
Value
A matrix.
Note
stdize3
is a variant with a three-element list as output (x, center, scale
) and where avoid.zero.divisor
is also used to avoid centring (constant term in model matrix is unchanged).
Author(s)
Bjørn-Helge Mevik and Øyvind Langsrud
See Also
Examples
A <- matrix(rnorm(15, mean = 1), ncol = 3)
stopifnot(all.equal(stdize(A), scale(A), check.attributes = FALSE))
## These are different:
stdize(A, center = FALSE)
scale(A, center = FALSE)