提前致谢。我使用'FactoMineR'包中的'PCA'函数来获得主成分分数。我已尝试阅读此论坛上的package details和类似问题,但无法找出旋转提取组件(正交或倾斜)的代码。
我知道'psychcomp'函数和'psych'包中的'principal'函数具有旋转能力,但我真的很喜欢'PCA'将变量缩放到单位方差的能力。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:2)
IIUC:
library(FactoMineR)
data(iris)
Iris <- iris[,1:4]
res <- PCA(Iris, graph=F)
#rotation
t(apply(res$var$coord, 1, function(x) {x/sqrt(res$eig[,1])}))
Dim.1 Dim.2 Dim.3 Dim.4
Sepal.Length 0.5210659 0.37741762 -0.7195664 -0.2612863
Sepal.Width -0.2693474 0.92329566 0.2443818 0.1235096
Petal.Length 0.5804131 0.02449161 0.1421264 0.8014492
Petal.Width 0.5648565 0.06694199 0.6342727 -0.5235971
#check
prcomp(Iris, scale=T)
Rotation:
PC1 PC2 PC3 PC4
Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863
Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971
另一行代码,如果您希望从PCA
对象获取加载:
sweep(res$var$coord, 2, sqrt(res$eig[,1]),'/')