ScaleAdv: centers and rescales data

ScaleAdvR Documentation

centers and rescales data

Description

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.

Author(s)

Heinrich Fritz, Peter Filzmoser <P.Filzmoser@tuwien.ac.at>

References

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

pcaPP documentation built on Oct. 24, 2022, 9:07 a.m.