Data is centered and rescaled (to have mean 0 and a standard deviation of 1).
Usage
ScaleAdv(x, center = mean, scale = sd)
Arguments
x
matrix containing the observations. If this is not a matrix, but
a data frame, it is automatically converted into a matrix using the function
as.matrix. In any other case, (eg. a vector) it is converted
into a matrix with one single column.
center
this argument indicates how the data is to be centered. It
can be a function like mean or median or a vector
of length ncol(x) containing the center value of each column.
scale
this argument indicates how the data is to be rescaled. It
can be a function like sd or mad or a vector
of length ncol(x) containing the scale value of each column.
Details
The default scale being NULL means that no rescaling is done.
Value
The function returns a list containing
x
centered and rescaled data matrix.
center
a vector of the centers of each column x. If you add to
each column of x the appropriate value from center, you will obtain
the data with the original location of the observations.
scale
a vector of the scale factors of each column x. If you multiply
each column of x by the appropriate value from scale, you will obtain
the data with the original scales.
C. Croux, P. Filzmoser, M. Oliveira, (2007).
Algorithms for Projection-Pursuit Robust Principal Component Analysis,
Chemometrics and Intelligent Laboratory Systems, Vol. 87, pp. 218-225.
Examples
x <- rnorm(100, 10, 5)
x <- ScaleAdv(x)$x
# can be used with multivariate data too
library(mvtnorm)
x <- rmvnorm(100, 3:7, diag((7:3)^2))
res <- ScaleAdv(x, center = l1median, scale = mad)
res
# instead of using an estimator, you could specify the center and scale yourself too
x <- rmvnorm(100, 3:7, diag((7:3)^2))
res <- ScaleAdv(x, 3:7, 7:3)
res