我正在尝试使用以下代码为数据的 PCA 绘制一个屏幕:
library(ade4)
data("olympic")
pca.olympic <- princomp(olympic$tab)
plot(1:10, pca.olympic$sdevˆ2, type="b", xlab="# PCs", ylab="Variance of PC",
main="PCA of Covariance Matrix")
当我运行这段代码时,我得到以下输出:
当我应该看到这样的东西时:
有人可以解释如何解决这个问题吗?
你的权力符号
ˆ
不正确。
我不确定你是怎么输入的,但复制并使用这个:^
代替。请注意,它在视觉上有所不同 - 不同的符号。
当您使用代码中的那个时,R 会默默地返回
NULL
:
pca.olympic$sdevˆ2
NULL
这是因为您键入的
ˆ
被视为另一个字符,而不是运算符,就像 š
这样的字符一样。结果,表达式 pca.olympic$sdevˆ2
不是将名为 sdev
的元素提升为 2 的幂,而是寻找名为 sdevˆ2
的变量。由于这样的变量不存在 - 它返回 NULL。
现在,当
y
为 null 时,仅使用在两个轴上绘制的 x
(1:10
) 变量生成图。
你得到一条对角线。