prcomp_tidiers {broom} | R Documentation |
prcomp
These 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
row
The sample labels (rownames) of the data set on which PCA was performed
PC
An integer vector indicating the principal component
value
The value of the eigenvector (axis score) on the indicated principal component
If matrix
is "v", "variables", or "rotation", the tidy
method
returns
row
The variable labels (colnames) of the data set on which PCA was performed
PC
An integer vector indicating the principal component
value
The value of the eigenvector (axis score) on the indicated principal component
If matrix
is "d" or "pcs", the tidy
method returns
PC
An integer vector indicating the principal component
std.dev
Standard deviation explained by this PC
percent
Percentage of variation explained
cumulative
Cumulative 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)