| prcomp_tidiers {broom} | R Documentation |
prcompThese tidiers operate on the results of a principal components analysis
computed using prcomp. The tidy method returns a data frame
with either the eigenvectors representing each row or each column.
## S3 method for class 'prcomp' tidy(x, matrix = "u", ...) ## S3 method for class 'prcomp' augment(x, data = NULL, newdata, ...)
x |
an object of class |
matrix |
character; Indicates which sets of eigenvectors are returned in tidy form. "v", "rotation", or "variables" will return information about each variable, while "u", "x", or "samples" (default) returns the loadings for each original row. "d" or "pcs" returns information about each principal component. |
... |
Extra arguments, not used |
data |
the original data on which principal components analysis
was performed. This cannot be recovered from |
newdata |
data frame; new observations for which locations on principal components are sought. |
All tidying methods return a data.frame without rownames, whose structure depends on the method chosen.
If matrix is "u", "samples", or "x", the tidy method
returns
rowThe sample labels (rownames) of the data set on which PCA was performed
PCAn integer vector indicating the principal component
valueThe value of the eigenvector (axis score) on the indicated principal component
If matrix is "v", "variables", or "rotation", the tidy method
returns
rowThe variable labels (colnames) of the data set on which PCA was performed
PCAn integer vector indicating the principal component
valueThe value of the eigenvector (axis score) on the indicated principal component
If matrix is "d" or "pcs", the tidy method returns
PCAn integer vector indicating the principal component
std.devStandard deviation explained by this PC
percentPercentage of variation explained
cumulativeCumulative percentage of variation explained
The augment.prcomp method returns a data frame containing
fitted locations on the principal components for the observed data plus
either the original data or the new data if supplied via data or
newdata respectively.
Gavin L. Simpson
pc <- prcomp(USArrests, scale = TRUE)
# information about rotation
head(tidy(pc))
# information about samples (states)
head(tidy(pc, "samples"))
# information about PCs
tidy(pc, "pcs")
# state map
library(dplyr)
library(ggplot2)
pc %>%
tidy(matrix = "samples") %>%
mutate(region = tolower(row)) %>%
inner_join(map_data("state"), by = "region") %>%
ggplot(aes(long, lat, group = group, fill = value)) +
geom_polygon() +
facet_wrap(~ PC) +
theme_void() +
ggtitle("Principal components of arrest data")
au <- augment(pc, data = USArrests)
head(au)
ggplot(au, aes(.fittedPC1, .fittedPC2)) +
geom_point() +
geom_text(aes(label = .rownames), vjust = 1, hjust = 1)