View source: R/list-svd-tidiers.R
tidy_svd | R Documentation |
Broom tidies a number of lists that are effectively S3
objects without a class attribute. For example, stats::optim()
,
svd() and interp::interp()
produce consistent output, but
because they do not have a class attribute, they cannot be handled by S3
dispatch.
These functions look at the elements of a list and determine if there is
an appropriate tidying method to apply to the list. Those tidiers are
implemented as functions of the form tidy_<function>
or
glance_<function>
and are not exported (but they are documented!).
If no appropriate tidying method is found, they throw an error.
tidy_svd(x, matrix = "u", ...)
x |
A list with components |
matrix |
Character specifying which component of the PCA should be tidied.
|
... |
Additional arguments. Not used. Needed to match generic
signature only. Cautionary note: Misspelled arguments will be
absorbed in
|
See https://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca for information on how to interpret the various tidied matrices. Note that SVD is only equivalent to PCA on centered data.
A tibble::tibble with columns depending on the component of PCA being tidied.
If matrix
is "u"
, "samples"
, "scores"
, or "x"
each row in the
tidied output corresponds to the original data in PCA space. The columns
are:
row |
ID of the original observation (i.e. rowname from original data). |
PC |
Integer indicating a principal component. |
value |
The score of the observation for that particular principal component. That is, the location of the observation in PCA space. |
If matrix
is "v"
, "rotation"
, "loadings"
or "variables"
, each
row in the tidied output corresponds to information about the principle
components in the original space. The columns are:
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"
, "eigenvalues"
or "pcs"
, the columns are:
PC |
An integer vector indicating the principal component. |
std.dev |
Standard deviation explained by this PC. |
percent |
Fraction of variation explained by this component (a numeric value between 0 and 1). |
cumulative |
Cumulative fraction of variation explained by principle components up to this component (a numeric value between 0 and 1). |
base::svd()
Other svd tidiers:
augment.prcomp()
,
tidy.prcomp()
,
tidy_irlba()
Other list tidiers:
glance_optim()
,
list_tidiers
,
tidy_irlba()
,
tidy_optim()
,
tidy_xyz()
library(modeldata)
data(hpc_data)
mat <- scale(as.matrix(hpc_data[, 2:5]))
s <- svd(mat)
tidy_u <- tidy(s, matrix = "u")
tidy_u
tidy_d <- tidy(s, matrix = "d")
tidy_d
tidy_v <- tidy(s, matrix = "v")
tidy_v
library(ggplot2)
library(dplyr)
ggplot(tidy_d, aes(PC, percent)) +
geom_point() +
ylab("% of variance explained")
tidy_u %>%
mutate(class = hpc_data$class[row]) %>%
ggplot(aes(class, value)) +
geom_boxplot() +
facet_wrap(~PC, scale = "free_y")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.