\name{scale}
\title{Scaling and Centering of Matrices}
\usage{
scale(x, center=TRUE, scale=TRUE)
}
\alias{scale}
\arguments{
\item{x}{a numeric matrix.}
\item{center}{either a logical value
or a numeric vector of length equal to the
number of columns of \code{x}.}
\item{scale}{either a logical value
or a numeric vector of length equal to the
number of columns of \code{x}.}
}
\description{
The value of \code{center} determines how column
centering is performed.
If \code{center} is a numeric vector with length
equal to the number of columns of \code{x}, then
each column of \code{x} has the corresponding value
from \code{center} subtracted from it.
If \code{center} is \code{TRUE} then centering is
done by subtracting the column means of \code{x}
from their corresponding columns and if \code{center}
is \code{FALSE}, no centering is done.

The value of \code{scale} determines how column
scaling is performed (after centering).
If \code{scale} is a numeric vector with length
equal to the number of columns of \code{x}, then
each column of \code{x} is divided by the corresponding
value from \code{scale}.
If \code{scale} is \code{TRUE} then scaling is
done by dividing the (centered) columns of
\code{x} by their root-mean-square,
and if \code{scale} is \code{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.
}
\examples{
x <- matrix(1:10, nc=2)
centered.x <- scale(x, scale=FALSE)
centered.scaled.x <- scale(x)
}
\keyword{array}
