我的代码出了问题。
我从csv导入一个578x17的数据表,使用的是。
Data=read.csv("Data.csv", header=TRUE, sep=',', dec='.', row.names= 1 , stringsAsFactors=TRUE)
我的相关性和协方差矩阵是一样的。
当我尝试做PCA和Varimax Rotation的PCA时,我得到了同样的结果。
PCA=princomp(x = Data, cor = TRUE, scores = TRUE)
Varimax<-princomp(Data, rotation="varimax")
当我尝试用不同的方式进行Varimax旋转时,我得到的结果是:
varimax<-varimax(PCA$rotation[,1:5])
if (nc < 2) return(x) 出错:参数长度为零。
我不知道是我的代码出了问题,还是我的.csv文件出了问题,但如果能得到帮助,我将非常感激
library(vegan)
library(pracma)
pca.env = rda(mydata, scale=T)
loading = scores(pca.env, choices=c(1,2))$species #choices determines which pc to be taken
rloading = varimax(loading)$loadings
iloading = t(pinv(rloading))
scores = scale(mydata) %*% iloading
r = range(c(rloading, scores))
plot(scores, xlim = r, ylim= r, xlab= "PC1 ", ylab= "PC2 ")
arrows(0,0, rloading[,1], rloading[,2], length=0.1, col=2)
text(rloading[,1], rloading[,2], labels = colnames(mydata), pos=3, col=2)
text(scores[,1], scores[,2], labels = rownames(mydata), pos = 3)
abline(h=0, lty=3)
abline(v=0, lty=3)