0

我已按照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' 中查看文件时,它已经重置了行名

环境中文件的剪辑和草图图像

但是,当我运行 prcomp

model<-prcomp(tf4[,-7],scale=TRUE)
biplot(model)

图中未使用站点标识符

双图的剪辑和草图视图

我无法解决这个问题。似乎将行名称设置为第 7 列无法正常工作。

  1. 我错过了一步吗?

  2. 在 prcomp 中我需要额外的指令吗?

4

2 回答 2

0

我不太确定你在找什么。但我认为就是这样;

# 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和更改cylRow 1Row 2。让我知道您是否正在寻找它。但是,如果没有特定的代码,我至少无法判断您哪里出错了。

最好的。

于 2021-06-19T19:54:04.130 回答
0

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

模型<-prcomp(tf4[,-7],scale=TRUE)

行名<-tf4$Site

双标图(模型)

并且双标图被成功标记 为成功双标图的剪辑和草图图像, 所以我的结论是我设置行名太早了。

于 2021-06-20T09:13:23.420 回答