Сохранить наблюдение, принадлежащее кластеру в R
Простой пример с набором данных iris. Я должен использовать apcluster library
library("apcluster")
#use dist() create a negative SimilarityMatrix
sim<-negDistMat(iris[,1:4],r=2)
#run the clusteralgorythm and create apclustert object apiris1
apiris1<-apcluster(sim,details=T)
apiris1=apclusterK(sim,details=T,K=2,verbose=T)
и после, я вижу количество кластеров и наблюдений в нем
Cluster 1, exemplar 8:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 58 99
Cluster 2, exemplar 124:
51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104
105 106 107 108 109 110 111 112 113 114 115 116 117 118
119 120 121 122 123 124 125 126 127 128 129 130 131 132
133 134 135 136 137 138 139 140 141 142 143 144 145 146
147 148 149 150
Как сохранить наблюдение, принадлежащее кластеру в R.
Чтобы сделать мой пост более понятным, на выходе я ожидаю такую таблицу
n Sepal.Length Sepal.Width Petal.Length Petal.Width Species Save.cluster
1 1 5.1 3.5 1.4 0.2 setosa 1
2 2 4.9 3.0 1.4 0.2 setosa 1
3 3 4.7 3.2 1.3 0.2 setosa 1
4 4 4.6 3.1 1.5 0.2 setosa 1
5 5 5.0 3.6 1.4 0.2 setosa 1
6 6 5.4 3.9 1.7 0.4 setosa 1
7 7 4.6 3.4 1.4 0.3 setosa 1
8 8 5.0 3.4 1.5 0.2 setosa 1
9 9 4.4 2.9 1.4 0.2 setosa 1
10 10 4.9 3.1 1.5 0.1 setosa 1
11 51 7.0 3.2 4.7 1.4 versicolor 2
12 52 6.4 3.2 4.5 1.5 versicolor 2
13 53 6.9 3.1 4.9 1.5 versicolor 2
14 54 5.5 2.3 4.0 1.3 versicolor 2
15 55 6.5 2.8 4.6 1.5 versicolor 2
1 ответ
Решение
Индексы кластера хранятся в apiris1@clusters
, Вы можете сделать data.frame похожим на тот, который вы запрашиваете, вот так:
iris1 = iris
iris1$Save.cluster = 0
for(i in 1:length(apiris1@clusters)) {
iris1$Save.cluster[apiris1@clusters[[i]]] = i }
head(iris1)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Save.cluster
1 5.1 3.5 1.4 0.2 setosa 1
2 4.9 3.0 1.4 0.2 setosa 1
3 4.7 3.2 1.3 0.2 setosa 1
4 4.6 3.1 1.5 0.2 setosa 1
5 5.0 3.6 1.4 0.2 setosa 1
6 5.4 3.9 1.7 0.4 setosa 1