【问题标题】:unable to change labels in PCA prcomp from row numbers to site names无法将 PCA prcomp 中的标签从行号更改为站点名称
【发布时间】:2021-09-03 23:06:11
【问题描述】:

我已按照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 中我需要额外的指令吗?

【问题讨论】:

    标签: r prcomp biplot


    【解决方案1】:

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

    # 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。让我知道您是否正在寻找它。但是,如果没有具体的代码,我至少不能告诉你哪里出错了。

    最好的。

    【讨论】:

      【解决方案2】:

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

      模型

      行名

      双标图(模型)

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

      【讨论】:

        猜你喜欢
        • 2016-12-18
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        • 2021-12-05
        • 1970-01-01
        • 2019-02-19
        相关资源
        最近更新 更多