Learn R Programming

pcaMethods (version 1.64.0)

prep: Pre-process a matrix for PCA

Description

Scaling and centering a matrix.

Usage

prep(object, scale = c("none", "pareto", "vector", "uv"), center = TRUE, eps = 1e-12, simple = TRUE, reverse = FALSE, ...)

Arguments

object
Numerical matrix (or an object coercible to such) with samples in rows and variables as columns. Also takes ExpressionSet in which case the transposed expression matrix is used.
scale
One of "UV" (unit variance $a=a/\sigma_{a}$) "vector" (vector normalisation $b=b/||b||$), "pareto" (sqrt UV) or "none" to indicate which scaling should be used to scale the matrix with $a$ variables and $b$ samples. Can also be a vector of scales which should be used to scale the matrix. NULL value is interpreted as "none".
center
Either a logical which indicates if the matrix should be mean centred or not, or a vector with averages which should be suntracted from the matrix. NULL value is interpreted as FALSE
eps
Minimum variance, variable with lower variance are not scaled and warning is issued instead.
simple
Logical indicating if only the data should be returned or a list with the pre-processing statistics as well.
reverse
Logical indicating if matrix should be 'post-processed' instead by multiplying each column with its scale and adding the center. In this case, center and scale should be vectors with the statistics (no warning is issued if not, instead output becomes the same as input).
...
Only used for passing through arguments.

Value

A pre-processed matrix or a list with
center
a vector with the estimated centers
scale
a vector with the estimated scales
data
the pre (or post) processed data

Details

Does basically the same as scale but adds some alternative scaling options and functionality for treating pre-processing as part of a model.

Examples

Run this code
object <- matrix(rnorm(50), nrow=10)
res <- prep(object, scale="uv", center=TRUE, simple=FALSE)
obj <- prep(object, scale=res$scale, center=res$center)
## same as original
sum((object - prep(obj, scale=res$scale, center=res$center, rev=TRUE))^2)

Run the code above in your browser using DataLab