微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将 PCA prcomp 中的标签从行号更改为站点名称

如何解决无法将 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 列无法正常工作。

  1. 我是否遗漏了一步?

  2. 在 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)

这会将名称从 mpgcyl 更改为 Row 1Row 2。如果这是您要找的,请告诉我。但是,如果没有具体的代码,我至少无法判断您哪里出错了。

最好的。

,

Serkan 给出的例子指出了我哪里出错了。它显示了 prcomp 和双标图之间的 rownames 指令。所以用我自己的数据文件我试过这个

模型

行名

双标(模型)

并且双标图被成功标记 snip and sketch image of successful biplot 所以我的结论是我设置行名太早了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。