Performs standardization (centering and scaling) of a data matrix.

stdize(x, center = TRUE, scale = TRUE)
# S3 method for stdized
predict(object, newdata, ...)
# S3 method for stdized
makepredictcall(var, call)

Arguments

x, newdata

numeric matrices. The data to standardize.

center

logical value or numeric vector of length equal to the number of coloumns of x.

scale

logical value or numeric vector of length equal to the number of coloumns of x.

object

an object inheriting from class "stdized", normally the result of a call to stdize.

var

A variable.

call

The term in the formula, as a call.

...

other arguments. Currently ignored.

Details

makepredictcall.stdized is an internal utility function; it is not meant for interactive use. See makepredictcall for details.

If center is TRUE, x is centered by subtracting the coloumn mean from each coloumn. If center is a numeric vector, it is used in place of the coloumn means.

If scale is TRUE, x is scaled by dividing each coloumn by its sample standard deviation. If scale is a numeric vector, it is used in place of the standard deviations.

Value

Both stdize and predict.stdized return a scaled and/or centered matrix, with attributes "stdized:center" and/or "stdized:scale" the vector used for centering and/or scaling. The matrix is given class c("stdized", "matrix").

Note

stdize is very similar to scale. The difference is that when scale = TRUE, stdize divides the coloumns by their standard deviation, while scale uses the root-mean-square of the coloumns. If center is TRUE, this is equivalent, but in general it is not.

See also

Examples

data(yarn) ## Direct standardization: Ztrain <- stdize(yarn$NIR[yarn$train,]) Ztest <- predict(Ztrain, yarn$NIR[!yarn$train,]) ## Used in formula: mod <- plsr(density ~ stdize(NIR), ncomp = 6, data = yarn[yarn$train,]) pred <- predict(mod, newdata = yarn[!yarn$train,]) # Automatically standardized