broom (version 0.4.1)

prcomp_tidiers: Tidying methods for principal components analysis via prcomp

Description

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.

Usage

"tidy"(x, matrix = "u", ...)
"augment"(x, data = NULL, newdata, ...)

Arguments

x
an object of class "prcomp" resulting from a call to prcomp
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 x. If newdata is supplied, data is ignored. If both data and newdata are missing, only the fitted locations on the principal components are returned.
newdata
data frame; new observations for which locations on principal components are sought.

Value

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.

See Also

prcomp, svd_tidiers

Examples

Run this code

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)

Run the code above in your browser using DataLab