Princomp已用于汇总大型数据集,汇总,摘要和加载均起作用,并且已从早期的pca中重复了所有代码。绘图的代码也非常相似,并且在运行时不会返回任何错误,但是绘图完全为空。
这最初是在原始代码中发生的,但是似乎可以通过再次运行princomp和summary来解决此问题,但是此解决方案这次没有起作用。
Plot_chars.abio.pca <-princomp(Plot_chars_standardised[,4:12])
summary(Plot_chars.abio.pca)
Plot_chars.abio.pca$loadings
screeplot(Plot_chars.abio.pca, type="lines")
Plot_chars.abio.pca.var <- Plot_chars.all.pca$sdev^2
Plot_chars.abio.pca.var[1:5]
plot(Plot_chars.abio.pca$x[,1], Plot_chars.abio.pca$x[,2],
bty = "n",
pch = Plot_chars$DomSpec -20,
cex =0.5,
col= Plot_chars$DomSpec -10,
xlim = c(-2,6),
ylim = c(-2,6),
xlab = "PCA1",
ylab = "PCA2")
我期望绘制PC1和PC2点,但是什么也没出现
答案 0 :(得分:0)
princomp
的结果不包含名为x
的列。对于得分图,对PC1使用Plot_chars.abio.pca$scores[, 1]
,对{1}使用Plot_chars.abio.pca$scores[, 2]
。对于载荷图,将Plot_chars.abio.pca$loadings[, 1]
用于PC1中的载荷,将Plot_chars.abio.pca$loadings[, 2]
用于PC2中的载荷。
您的示例:
plot(Plot_chars.abio.pca$scores[,1], Plot_chars.abio.pca$scores[,2],
bty = "n",
pch = Plot_chars$DomSpec -20,
cex =0.5,
col= Plot_chars$DomSpec -10,
xlim = c(-2,6),
ylim = c(-2,6),
xlab = "PCA1",
ylab = "PCA2")