# stdize: Standardization of Data Matrices In bhmevik/pls: Partial Least Squares and Principal Component Regression

## Description

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

## Usage

 ```1 2 3 4 5``` ```stdize(x, center = TRUE, scale = TRUE) ## S3 method for class 'stdized' predict(object, newdata, ...) ## S3 method for class '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.

## Author(s)

Bjørn-Helge Mevik and Ron Wehrens

`mvr`, `pcr`, `plsr`, `msc`, `scale`
 ```1 2 3 4 5 6 7 8``` ```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 ```