A wrapper which carries out classical PCA analysis on a
`Spectra`

object. The user can select various options for
scaling. There is no normalization by rows - do this manually using
`normSpectra`

. There is an option to control centering, but
this is mainly for compatibility with the `aov_pcaSpectra`

series of functions. Centering the data should always be done in PCA and it
is the default here.

`c_pcaSpectra(spectra, choice = "noscale", cent = TRUE)`

- spectra
An object of S3 class

`Spectra`

.- choice
A character string indicating the choice of scaling. One of

`c("noscale"`

,`"autoscale"`

,`"Pareto")`

.`"autoscale"`

is called "standard normal variate" or "correlation matrix PCA" in some literature.- cent
Logical: whether or not to center the data. Always center the data unless you know it to be already centered.

An object of class `prcomp`

, modified to include a list
element called `$method`

, a character string describing the
pre-processing carried out and the type of PCA performed (used to annotate
plots).

The scale choice `autoscale`

scales the columns by their standard
deviation. `Pareto`

scales by the square root of the standard
deviation.

K. Varmuza and P. Filzmoser *Introduction to Multivariate
Statistical Analysis in Chemometrics*, CRC Press, 2009.

`prcomp`

for the underlying function,
`s_pcaSpectra`

for sparse PCA calculations,
`r_pcaSpectra`

for robust PCA calculations,
`irlba_pcaSpectra`

for PCA via the IRLBA algorithm.
Additional documentation at https://bryanhanson.github.io/ChemoSpec/

```
if (FALSE) {
# This example assumes the graphics output is set to ggplot2 (see ?GraphicsOptions).
library("ggplot2")
data(metMUD1)
pca <- c_pcaSpectra(metMUD1)
p1 <- plotScree(pca)
p1
p2 <- plotScores(metMUD1, pca, pcs = c(1, 2), ellipse = "cls", tol = 0.05)
p2 <- p2 + ggtitle("Scores: metMUD1 NMR Data")
p2
p3 <- plotLoadings(metMUD1, pca, loads = 1:2, ref = 1)
p3 <- p3 + ggtitle("Loadings: metMUD1 NMR Data")
p3
}
```