PCA 旋转缺少 PC1 列
Missing PC1 column to a PCA rotation
我正在尝试对经典 Iris 数据集进行 PCA。这是我的代码:
library(tidyverse)
x <- iris[,1:4] %>% as.matrix()
pca <- prcomp(x, scale. = TRUE)
summary(pca)
组件旋转具有 Petal.Length、Petal.Width 等的每个值。所以我尝试了这个:
as.data.frame(pca$rotation) %>% pivot_longer(-1, names_to = "components", values_to = "value")
我知道肯定有错,因为 pca$rotation
是一个矩阵,不知何故 PC1
被遗漏了。预期结果应该是:
terms value component
<chr> <dbl> <chr>
1 Sepal.Length 0.521 PC1
2 Sepal.Width -0.269 PC1
3 Petal.Length 0.580 PC1
4 Petal.Width 0.565 PC1
5 Sepal.Length -0.377 PC2
6 Sepal.Width -0.923 PC2
7 Petal.Length -0.0245 PC2
8 Petal.Width -0.0669 PC2
9 Sepal.Length 0.720 PC3
10 Sepal.Width -0.244 PC3
11 Petal.Length -0.142 PC3
12 Petal.Width -0.634 PC3
13 Sepal.Length 0.261 PC4
14 Sepal.Width -0.124 PC4
15 Petal.Length -0.801 PC4
16 Petal.Width 0.524 PC4
您 -1
指定要包括哪些变量的第一列被遗漏了(您可能误读了行名称,这些行名称通常被 tidyverse 机器忽略,作为第一列)。怎么样
pca$rotation %>%
as.data.frame() %>%
rownames_to_column("term") %>%
as_tibble() %>% ## cosmetic
pivot_longer(starts_with("PC"),
names_to = "components",
values_to = "value")
?
我正在尝试对经典 Iris 数据集进行 PCA。这是我的代码:
library(tidyverse)
x <- iris[,1:4] %>% as.matrix()
pca <- prcomp(x, scale. = TRUE)
summary(pca)
组件旋转具有 Petal.Length、Petal.Width 等的每个值。所以我尝试了这个:
as.data.frame(pca$rotation) %>% pivot_longer(-1, names_to = "components", values_to = "value")
我知道肯定有错,因为 pca$rotation
是一个矩阵,不知何故 PC1
被遗漏了。预期结果应该是:
terms value component
<chr> <dbl> <chr>
1 Sepal.Length 0.521 PC1
2 Sepal.Width -0.269 PC1
3 Petal.Length 0.580 PC1
4 Petal.Width 0.565 PC1
5 Sepal.Length -0.377 PC2
6 Sepal.Width -0.923 PC2
7 Petal.Length -0.0245 PC2
8 Petal.Width -0.0669 PC2
9 Sepal.Length 0.720 PC3
10 Sepal.Width -0.244 PC3
11 Petal.Length -0.142 PC3
12 Petal.Width -0.634 PC3
13 Sepal.Length 0.261 PC4
14 Sepal.Width -0.124 PC4
15 Petal.Length -0.801 PC4
16 Petal.Width 0.524 PC4
您 -1
指定要包括哪些变量的第一列被遗漏了(您可能误读了行名称,这些行名称通常被 tidyverse 机器忽略,作为第一列)。怎么样
pca$rotation %>%
as.data.frame() %>%
rownames_to_column("term") %>%
as_tibble() %>% ## cosmetic
pivot_longer(starts_with("PC"),
names_to = "components",
values_to = "value")
?