我是 R 的初学者,使用 prcomp 执行 PCA,除了默认行号之外,无法获得任何标记的点。我的档案是不同地点的物种存在和缺失。例如在这里,我设置了一个小测试文件,我想使用 SITES 列中的标签来标记我在 biplot 中的点。
> head(testfile2)
# A tibble: 6 x 7
SITES sp1 sp2 sp3 sp4 sp5 sp6
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 A1 1 1 1 1 1 1
2 A2 0 1 1 1 1 0
3 B1 0 1 1 1 1 1
4 C 1 1 1 1 1 0
5 D 0 0 1 1 0 1
6 E 1 0 1 1 1 0
然后当我尝试设置行名时,我收到以下错误消息
> row.names(testfile2)<-testfile2[,1]
Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
# In addition: Warning message:
Setting row names on a tibble is deprecated.
但是我可以成功运行 PCA,但没有我需要 prcomp biplot的标签
我检查了行名,没有一个是重复的。我在设置行名时做错了什么?我搜索了 stackoverflow 和其他网站,并看到了类似的问题。我已经尝试了建议的解决方案,但未能解决问题。我希望这是显而易见的事情,但经过长时间的搜索,我被难住了。
解决方案是在 PRCOMP 和 BIPLOT 指令模型之间设置行名 <-prcomp(testfile2[,-1],scale=TRUE)
摘要(型号)
行名<-testfile2$SITES
双标图(模型)