我想使用autoplot()
package的功能来绘制 PC2 和 PC3 的图ggfortify
。默认只显示 PC1 和 PC2:
library(ggfortify)
myPCA <- prcomp(iris[-5])
autoplot(myPCA)
我可以通过重新排序和重命名 prcomp 对象中的列来得到我想要的:
myPCAtrunc <- myPCA
myPCAtrunc[[1]] <- myPCAtrunc[[1]][c(2,3,1,4)]
myPCAtrunc[[2]] <- myPCAtrunc[[2]][,c(2,3,1,4)]
colnames(myPCAtrunc[[2]]) <- c("PC1","PC2","PC3","PC4") # fake names
myPCAtrunc[[5]] <- myPCAtrunc[[5]][,c(2,3,1,4)]
colnames(myPCAtrunc[[5]]) <- c("PC1","PC2","PC3","PC4") # fake names
autoplot(myPCAtrunc, xlab = "PC2", ylab="PC3")
我知道这是正确的,因为它与plot(myPCA$x[, c(2,3)])
.
但是必须有一种更清洁的方法来解决它。一些想法?