我的代码向南走了。
我正在使用:
从csv导入数据578x17Data=read.csv("Data.csv", header=TRUE, sep=',', dec='.', row.names= 1 , stringsAsFactors=TRUE)
我的相关和协方差矩阵是相同的。
当我尝试使用Varimax旋转进行PCA和PCA时,我得到相同的结果:
PCA=princomp(x = Data, cor = TRUE, scores = TRUE)
Varimax<-princomp(Data, rotation="varimax")
当我尝试以不同的方式进行Varimax旋转时,我得到:
varimax<-varimax(PCA$rotation[,1:5])
if(nc&lt; 2)return(x):参数长度为零
时出错
我不确定问题是我的代码还是我的.csv文件,但是非常感谢任何帮助!
答案 0 :(得分:0)
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)