将"loadings"对象转换为数据框(Dataframe) (R)

7

我正在尝试将类型为“loadings”的对象转换为R中的数据框。然而,我的尝试通过as_tibble()或as.data.frame()强制转换并没有成功。以下是代码:

iris_pca <- prcomp(iris[1:4], center = TRUE, scale. = TRUE)
iris_pca$rotation[,1:2] %>% 
  varimax() %>% 
  .$loadings

这段代码会输出以下内容:
Loadings:
             PC1    PC2   
Sepal.Length  0.596 -0.243
Sepal.Width         -0.961
Petal.Length  0.570  0.114
Petal.Width   0.565       

                PC1  PC2
SS loadings    1.00 1.00
Proportion Var 0.25 0.25
Cumulative Var 0.25 0.50

我该如何将这些数据转换为数据框架?

1个回答

7
"loadings"对象中提取数值并将其转换为矩阵。所需的维度和名称可以在str(l)中找到。
data.frame(matrix(as.numeric(l), attributes(l)$dim, dimnames=attributes(l)$dimnames))
#                      PC1         PC2
# Sepal.Length  0.59593180 -0.24252635
# Sepal.Width  -0.04181096 -0.96087188
# Petal.Length  0.56955777  0.11438157
# Petal.Width   0.56455387  0.06944826

"数据"
iris_pca <- prcomp(iris[1:4], center=TRUE, scale.=TRUE)
l <- varimax(iris_pca$rotation[, 1:2])$loadings

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接