所以在R中我使用主成分分析对csv文件进行变量处理,每个变量代表从1到32的年份。
以下是代码:
Xdata <- context2[2:ncol(context2)]
head(Xdata)
model5 <- prcomp(Xdata)
model5$rotation[,1]*100
screeplot(model5,type="lines")
factor <- model5$x[,1]
context2$factor <- factor
factor2 = matrix(c(factor), nrow=651, ncol=1)
factor <- factor2 %*% solve(sqrtm(crossprod(factor2))) * sqrt(nrow(factor2))
crossprod(factor)/nrow(factor)
上面的所有代码都运行正常,但我需要找到标准化因子小于-2.58的年份值。如果我在r中查看标准化因子,我可以通过查看得到小于-2.58的值,但数字是主成分1变量的输出,如下所示:https://imgur.com/a/OGNVq。如何获得标准化因子小于-2.58的年份?
答案 0 :(得分:0)
不清楚哪个包含标准化因子,哪个变量包含&#34;年&#34;。我猜这个变量是:
crossprod(factor)/nrow(factor)
如果上面提到的年变量和变量的顺序相同(也就是说,第n个位置的年份对应于同一位置的因子),那么你可以使用基数R来获得年份。例如:
factor_variable <- crossprod(factor)/nrow(factor)
year[which(factor_variable < -2.58)]