如何解决无法将 PCA prcomp 中的标签从行号更改为站点名称
我已按照 https://stackoverflow.com/questions/38900698/how-to-change-labels-from-pca-using-prcomp-to-sample-names 中的答案进行操作,但无法使其正常工作。 我设置了一个包含 7 列和 12 行的虚拟文件(称为 tf4)并将其导入到 R Studio 中。前几行看起来像这样
head(tf4)
# A tibble: 6 x 7
sp1 sp2 sp3 sp4 sp5 sp6 Site
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
1 1 1 1 1 1 1 A1
2 0 1 1 1 1 0 A2
3 0 1 1 1 1 1 B1
4 1 1 1 1 1 0 C1
5 0 0 1 1 0 1 D4
6 1 0 1 1 1 0 E7
然后我将行名称设置为第 7 列
#将行名称设置为第 7 列
row.names(tf4)<-tf4$Site
head(tf4)
并收到警告消息
警告消息:不推荐在 tibble 上设置行名称。
当我再次使用 head(tf4) 进行检查时,行名称并未重置并保持原样。
但是当我在 R studio 'environment' 中查看文件时,它已经重置了行名称
snip and sketch image of the file in environment
但是,当我运行 prcomp
model<-prcomp(tf4[,-7],scale=TRUE)
biplot(model)
图中未使用站点标识符
snip and sketch view of biplot
我无法解决这个问题。似乎将行名称设置为第 7 列无法正常工作。
-
我是否遗漏了一步?
-
在 prcomp 中我需要额外的说明吗?
解决方法
我不太确定你在找什么。但我认为就是这样;
# PCA with mtcars; ###
pca <- prcomp(mtcars[,c(1,2)],scale. = TRUE)
# Rename Rownames of Components; ####
rownames(pca$rotation) <- c("Row 1","Row 2")
# Biplot; ####
biplot(pca)
这会将名称从 mpg
和 cyl
更改为 Row 1
和 Row 2
。如果这是您要找的,请告诉我。但是,如果没有具体的代码,我至少无法判断您哪里出错了。
最好的。
,Serkan 给出的例子指出了我哪里出错了。它显示了 prcomp 和双标图之间的 rownames 指令。所以用我自己的数据文件我试过这个
模型
行名
双标(模型)
并且双标图被成功标记 snip and sketch image of successful biplot 所以我的结论是我设置行名太早了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。