2017-09-11 135 views
0

我有一個顯示兩個真正大集羣的PCA,我不知道如何確定每個集羣中的哪些樣本。從PCA獲取集羣r

enter image description here

如果有幫助,進出口使用prcomp生成PCA:

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

我的方法是嘗試集羣中使用K均值的PCA輸出,2組獲得集羣:

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

然後我可以做一個美麗的情節,但我仍然失去了每個集羣中的哪些樣本。作爲參考,在這裏,如果我繪製的k均值輸出的情節產生:

enter image description here

正如你可以在第一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 

回答

0

在我的問題,clust是從我的k均值輸出的名稱:

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 

希望這可以幫助某人。