# RnipalsPca: NIPALS PCA implemented in R In pcaMethods: A collection of PCA methods

## Description

PCA by non-linear iterative partial least squares

## Usage

 ```1 2``` ```RnipalsPca(Matrix, nPcs = 2, varLimit = 1, maxSteps = 5000, threshold = 1e-06, verbose = interactive(), ...) ```

## Arguments

 `Matrix` Pre-processed (centered, scaled) numerical matrix samples in rows and variables as columns. `nPcs` Number of components that should be extracted. `varLimit` Optionally the ratio of variance that should be explained. `nPcs` is ignored if varLimit < 1 `maxSteps` Defines how many iterations can be done before algorithm should abort (happens almost exclusively when there were some wrong in the input data). `threshold` The limit condition for judging if the algorithm has converged or not, specifically if a new iteration is done if (T_{old} - T)^T(T_{old} - T) > \code{limit}. `verbose` Show simple progress information. `...` Only used for passing through arguments.

## Details

Can be used for computing PCA on a numeric matrix using either the NIPALS algorithm which is an iterative approach for estimating the principal components extracting them one at a time. NIPALS can handle a small amount of missing values. It is not recommended to use this function directely but rather to use the pca() wrapper function. There is a C++ implementation given as `nipalsPca` which is faster.

## Value

A `pcaRes` object.

Henning Redestig

## References

Wold, H. (1966) Estimation of principal components and related models by iterative least squares. In Multivariate Analysis (Ed., P.R. Krishnaiah), Academic Press, NY, 391-420.

`prcomp`, `princomp`, `pca`
 ```1 2 3 4 5 6 7``` ```data(metaboliteData) mat <- prep(t(metaboliteData)) ## c++ version is faster system.time(pc <- RnipalsPca(mat, method="rnipals", nPcs=2)) system.time(pc <- nipalsPca(mat, nPcs=2)) ## better use pca() pc <- pca(t(metaboliteData), method="rnipals", nPcs=2) ```