Я хотел бы построить график PC2 против PC3, используя функцию autoplot()
пакета ggfortify
. По умолчанию отображаются только ПК1 и ПК2:
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)])
.
Но должен быть более чистый способ решить эту проблему. Некоторые идеи?