将 PCA 输出转换为 R 中的数据帧
Turning PCA output into dataframe in R
我已经 运行 进行了主成分分析。输出 pca1$loadings 看起来像一个数据框,但它不是。有没有办法把它变成一个数据框?
我希望能够对输出的列进行排序。如果我可以使用 Excel 中的输出也很好。
这是我用来生成 PCA 的代码。
cor <- cor(df[, 1:87]) #correlation matrix with all dv's
pca1 <- principal(cor, nfactors = 87, rotate = "varimax")
pca1$loadings
对象属于 class 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
一个较短的版本是只删除 class 属性
unclass(pca1)
我已经 运行 进行了主成分分析。输出 pca1$loadings 看起来像一个数据框,但它不是。有没有办法把它变成一个数据框?
我希望能够对输出的列进行排序。如果我可以使用 Excel 中的输出也很好。
这是我用来生成 PCA 的代码。
cor <- cor(df[, 1:87]) #correlation matrix with all dv's
pca1 <- principal(cor, nfactors = 87, rotate = "varimax")
pca1$loadings
对象属于 class 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
一个较短的版本是只删除 class 属性
unclass(pca1)