pca | R Documentation |
Principal components analysis is a eigenanalysis of a correlation or covariance matrix used to project a high-dimensional system to fewer dimensions.
pca(mat, cor = FALSE, dim = min(nrow(mat),ncol(mat)))
## S3 method for class 'pca'
summary(object, dim = length(object$sdev), ...)
## S3 method for class 'pca'
scores(x, labels = NULL, dim = length(x$sdev), ...)
## S3 method for class 'pca'
loadings(x, dim = length(x$sdev), digits = 3, cutoff = 0.1, ...)
## S3 method for class 'pca'
varplot(x, dim=length(x$sdev),...)
mat |
a matrix or data.frame of interest, samples as rows, attributes as columns |
cor |
logical: whether to use a correlation matrix (if TRUE), or covariance matrix (if FALSE) |
dim |
the number of dimensions to return |
object |
an object of class ‘pca’ |
x |
an object of class ‘dsvord’ and type='pca' |
labels |
an (optional) vector of labels to identify points |
digits |
number of digits to report |
cutoff |
threshold to suppress printing small values |
... |
arguments to pass to function summary or graphics arguments |
PCA is a common multivariate technique. The version here is simply
a wrapper for the prcomp
function to make its use and
plotting consistent with the other LabDSV functions.
an object of class "pca", a list with components:
scores |
a matrix of the coordinates of the samples in the reduced space |
loadings |
a matrix of the contributions of the variables to the axes of the reduced space. |
sdev |
a vector of standard deviations for each dimension |
The current version of pca is based on the prcomp
function, as opposed to the princomp
function. Nonetheless,
it maintains the more conventional labels "scores" and "loadings",
rather than x and rotation. prcomp is based on a
singular value decomposition algorithm, as has worked better in my
experience. In the rare cases where it fails, you may want to try
princomp
.
David W. Roberts droberts@montana.edu
princomp
, prcomp
,
pco
, nmds
,
fso
, cca
data(bryceveg) # returns a vegetation data.frame
data(brycesite)
x <- pca(bryceveg,dim=10) # returns the first 10 eigenvectors
# and loadings
plot(x)
surf(x,brycesite$elev)
points(x,brycesite$depth=='deep')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.