【问题标题】:Turning PCA output into dataframe in R将 PCA 输出转换为 R 中的数据帧
【发布时间】:2020-01-25 04:32:12
【问题描述】:

我进行了主成分分析。输出 pca1$loadings 看起来像一个数据框,但它不是。有没有办法把它变成一个数据框?

我希望能够对输出的列进行排序。如果我可以在 Excel 中使用输出,那就太好了。

这是我用来生成 PCA 的代码。

cor <- cor(df[, 1:87]) #correlation matrix with all dv's
pca1 <- principal(cor, nfactors = 87, rotate = "varimax") 
pca1$loadings

【问题讨论】:

  • 您可以使用write.csv(pca1$loadings, "PCA_loading.csv") 将 PCA 加载写入 .csv 文件。

标签: r dataframe pca


【解决方案1】:

对象属于loadings类,转换为数据框使用as.data.frame.matrix

pca1 <- psych::principal(cor, nfactors = 87, rotate = "varimax")$loadings 
as.data.frame.matrix(pca1)

使用mtcars 的可重现示例

cor <- cor(mtcars)
pca1 <- psych::principal(cor, nfactors =2, rotate = "varimax")$loadings 
as.data.frame.matrix(pca1)


#         RC1     RC2
#mpg   0.6846 -0.6329
#cyl  -0.6373  0.7231
#disp -0.7328  0.6044
#hp   -0.3233  0.8828
#drat  0.8533 -0.2091
#wt   -0.7989  0.4557
#qsec -0.1591 -0.8996
#vs    0.2996 -0.8206
#am    0.9206  0.0774
#gear  0.9066  0.1661
#carb  0.0775  0.8660

更短的版本是删除类属性

unclass(pca1) 

【讨论】:

  • as.data.frame.matrix() 在我使用 pca1$loadings 时有效,而不是在我只使用 pca1 时。
  • @melbez 是的,我在 pca1 &lt;- psych::principal(cor, nfactors = 87, rotate = "varimax")$loadings 中所做的事情。
猜你喜欢
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2019-10-29
  • 2019-07-31
相关资源
最近更新 更多