从 PCA 中获取集群 r

Get clusters from PCA r

我的 PCA 显示了两个非常大的集群,但我不知道如何确定每个集群中有哪些样本。

如果有帮助,我正在使用 prcomp 生成 PCA:

pca1 <- autoplot(prcomp(df), label = TRUE, label.size = 2)

我的方法是尝试使用 kmeans 和 2 个组对 PCA 输出进行聚类以获得聚类:

pca   <- prcomp(df, scale.=TRUE)
clust <- kmeans(pca$x[,1:2], centers=2)$cluster

然后我可以画出漂亮的图,但我仍然不知道每个簇中有哪些样本。作为参考,这里是如果我绘制 kmeans 输出图生成的图:

正如您在第一个 PCA 图中看到的那样,标签字面意思是每个点是哪个样本。我理想的输出是一个两列的 txt 文件,一列是样本名称,另一列是它所属的组。

除此之外,如果有更好的方法,请告诉我。

提前致谢。

这是我的一大块数据:

              a        b       c       b      e
Sample_1013 312011  624559  625898  534309  220415

Sample_1046 474774  949458  951145  843049  366136

Sample_104  645363  1290450 1292520 919474  272200

Sample_1057 267319  534685  535294  690574  422645

Sample_106  414065  830571  834527  657354  234130

Sample_107  299289  602483  603756  566256  262153

在我的问题中,clust 是我的 kmeans 输出的名称:

clust <- kmeans(pca$x[,1:2], centers=2)$cluster

我在终端中输入了 clust 并得到了每个组的样本:

> clust
Sample_1013     Sample_1046      Sample_104     Sample_1057      Sample_106      Sample_107 
          1               1               1               1               1               1 
Sample_1098      Sample_109     Sample_1109     Sample_1129     Sample_1130     Sample_1140 
          1               1               1               1               1               1 
Sample_1149      Sample_115      Sample_118     Sample_1220     Sample_1223     Sample_1225 
          1               1               1               1               1               1 

希望这对某人有所帮助。