## Scaling and Centering of Matrices

## Usage

    scale(x, center=TRUE, scale=TRUE)

## Arguments

`x` | a numeric matrix.
`center` | either a logical value or a numeric vector of length equal to the number of columns of `x`.
`scale` | either a logical value or a numeric vector of length equal to the number of columns of `x`.

## Description

The value of `center` determines how column centering is performed. If `center` is a numeric vector with length equal to the number of columns of `x`, then each column of `x` has the corresponding value from `center` subtracted from it. If `center` is `TRUE` then centering is done by subtracting the column means of `x` from their corresponding columns and if `center` is `FALSE`, no centering is done.

The value of `scale` determines how column scaling is performed (after centering). If `scale` is a numeric vector with length equal to the number of columns of `x`, then each column of `x` is divided by the corresponding value from `scale`. If `scale` is `TRUE` then scaling is done by dividing the (centered) columns of `x` by their root-mean-square, and if `scale` is `FALSE`, no scaling is done.

The root-mean-square for a column is obtained by computing the square-root of the sum-of-squares of the non-missing values in the column divided by the number of non-missing values minus one.

## Value

The centered, scaled matrix.

## See Also

`sweep` which allows centering (and scaling) with arbitrary statistics.

## Examples

    x <- matrix(1:10, nc=2)
    (centered.x <- scale(x, scale=FALSE))
    cov(centered.scaled.x <- scale(x))# all 1

[Package Contents]