Description Usage Arguments Details Value Note Author(s) See Also Examples
Perform a principal components analysis (PCA) on a matrix or data frame and
return a pcomp
object.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67  pcomp(x, ...)
## S3 method for class 'formula'
pcomp(formula, data = NULL, subset, na.action,
method = c("svd", "eigen"), ...)
## Default S3 method:
pcomp(x, method = c("svd", "eigen"), scores = TRUE,
center = TRUE, scale = TRUE, tol = NULL, covmat = NULL,
subset = rep(TRUE, nrow(as.matrix(x))), ...)
## S3 method for class 'pcomp'
print(x, ...)
## S3 method for class 'pcomp'
summary(object, loadings = TRUE, cutoff = 0.1, ...)
## S3 method for class 'summary.pcomp'
print(x, digits = 3,
loadings = x$print.loadings, cutoff = x$cutoff, ...)
## S3 method for class 'pcomp'
plot(x, which = c("screeplot", "loadings",
"correlations", "scores"), choices = 1L:2L, col = par("col"),
bar.col = "gray", circle.col = "gray", ar.length = 0.1,
pos = NULL, labels = NULL, cex = par("cex"),
main = paste(deparse(substitute(x)), which, sep = "  "), xlab, ylab,
...)
## S3 method for class 'pcomp'
screeplot(x, npcs = min(10, length(x$sdev)),
type = c("barplot", "lines"), col = "cornsilk",
main = deparse(substitute(x)), ...)
## S3 method for class 'pcomp'
points(x, choices = 1L:2L, type = "p",
pch = par("pch"), col = par("col"), bg = par("bg"),
cex = par("cex"), ...)
## S3 method for class 'pcomp'
lines(x, choices = 1L:2L, groups, type = c("p", "e"),
col = par("col"), border = par("fg"), level = 0.9, ...)
## S3 method for class 'pcomp'
text(x, choices = 1L:2L, labels = NULL,
col = par("col"), cex = par("cex"), pos = NULL, ...)
## S3 method for class 'pcomp'
biplot(x, choices = 1L:2L, scale = 1,
pc.biplot = FALSE, ...)
## S3 method for class 'pcomp'
pairs(x, choices = 1L:3L, type = c("loadings",
"correlations"), col = par("col"), circle.col = "gray",
ar.col = par("col"), ar.length = 0.05, pos = NULL,
ar.cex = par("cex"), cex = par("cex"), ...)
## S3 method for class 'pcomp'
predict(object, newdata, dim = length(object$sdev), ...)
## S3 method for class 'pcomp'
correlation(x, newvars, dim = length(x$sdev), ...)
scores(x, ...)
## S3 method for class 'pcomp'
scores(x, labels = NULL, dim = length(x$sdev), ...)

x 
A matrix or data frame with numeric data. 
... 
Arguments passed to or from other methods. If 
formula 
A formula with no response variable, referring only to numeric variables. 
data 
An optional data frame (or similar, see 
subset 
An optional vector used to select rows (observations) of the
data matrix 
na.action 
A function which indicates what should happen when the data
contain 
method 
Either 
scores 
A logical value indicating whether the score on each principal component should be calculated. 
center 
A logical value indicating whether the variables should
centered. Alternately, a vector of length equal the number of columns of 
scale 
A logical value indicating whether the variables should be
scaled to have unit variance before the analysis takes place. The default is

tol 
Only when 
covmat 
A covariance matrix, or a covariance list as returned by

object 
A 'pcomp' object. 
loadings 
Do we also summarize the loadings? 
cutoff 
The cutoff value below which loadings are replaced by white spaces in the table. That way, larger values are easier to spot and to read in large tables. 
digits 
The number of digits to print. 
which 
The graph to plot. 
choices 
Which principal axes to plot. For 2D graphs, specify two integers. 
col 
The color to use in graphs. 
bar.col 
The color of bars in the screeplot. 
circle.col 
The color for the circle in the loadings or correlations plots. 
ar.length 
The length of the arrows in the loadings and correlations plots. 
pos 
The position of text relative to arrows in loadings and correlation plots. 
labels 
The labels to write. If 
cex 
The factor of expansion for text (labels) in the graphs. 
main 
The title of the graph. 
xlab 
The label of the xaxis. 
ylab 
The label of the yaxis. 
npcs 
The number of principal components to represent in the screeplot. 
type 
The type of screeplot ( 
pch 
The type of symbol to use. 
bg 
The background color for symbols. 
groups 
A grouping factor. 
border 
The color of the border. 
level 
The probability level to use to draw the ellipse. 
pc.biplot 
Do we create a Gabriel's biplot (see 
ar.col 
Color of arrows. 
ar.cex 
Expansion factor for terxt on arrows. 
newdata 
New individuals with observations for the same variables as those used for calculating the PCA. You can then plot these additional individuals in the scores plot. 
dim 
The number of principal components to keep. 
newvars 
New variables with observations for same individuals as those used for calculating the PCA. Correlation with PCs is calculated. You can then plot these additional variables in the correlation plot. 
pcomp()
is a generic function with "formula"
and "default"
methods. It is essentially a wrapper around prcomp()
and princomp()
to
provide a coherent interface and object for both methods.
A 'pcomp' object is created. It inherits from 'pca' (as in labdsv package, but not compatible with the version of 'pca' in ade4) and of 'princomp'.
For more information on algorithms, refer to prcomp()
for
method = "svd"
or princomp()
for method = "eigen"
.
A c("pcomp", "pca", "princomp")
object.
The signs of the columns for the loadings and scores are arbitrary. So, they could differ between functions for PCA, and even between different builds of R.
Philippe Grosjean [email protected], but the core code is indeed in package stats.
prcomp()
, princomp()
, loadings()
, vectorplot()
,
Correlation()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  # Let's analyze mtcars without the Mercedes data (rows 8:14)
data(mtcars)
cars.pca < pcomp(~ mpg + cyl + disp + hp + drat + wt + qsec,
data = mtcars, subset = (8:14))
cars.pca
summary(cars.pca)
screeplot(cars.pca)
# Loadings are extracted and plotted this way:
(cars.ldg < loadings(cars.pca))
plot(cars.pca, which = "loadings") # Equivalent to vectorplot(cars.ldg)
# Similarly, correlations of variables with PCs are extracted and plotted:
(cars.cor < Correlation(cars.pca))
plot(cars.pca, which = "correlations") # Equivalent to vectorplot(cars.cor)
# One can add supplementary variables on this graph
lines(Correlation(cars.pca,
newvars = mtcars[(8:14), c("vs", "am", "gear", "carb")]))
# Plot the scores:
plot(cars.pca, which = "scores", cex = 0.8) # Similar to plot(scores(x)[, 1:2])
# Add supplementary individuals to this plot (labels), also points() or lines()
text(predict(cars.pca, newdata = mtcars[8:14, ]),
labels = rownames(mtcars[8:14, ]), col = "gray", cex = 0.8)
# Pairs plot for 3 PCs
iris.pca < pcomp(iris[, 5])
pairs(iris.pca, col = (2:4)[iris$Species])

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.