Pytanie dotyczy pakietu cluster
. Strona pomocy dla agnes.object
zwrócona przez agnes
(zob. http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/agnes.object.html) stwierdza, że ten obiekt zawiera komponent "order.lab
" podobny do order
, ale zawierający etykiety obserwacyjne zamiast liczb obserwacji.Ten składnik jest dostępny tylko wtedy, gdy oryginalne obserwacje zostały oznaczone. "
Macierz odmienności (twitter.om
w twoim przypadku) produkowana przez TraMineR obecnie nie zachowuje etykiet sekwencji jako nazw wierszy i kolumn. Aby uzyskać komponent order.lab
, musisz ręcznie przypisać etykiety sekwencji zarówno do macierzy rownames
jak i colnames
. Ilustruję tutaj dane z mvad
dostarczone przez pakiet TraMineR.
library(TraMineR)
data(mvad)
## attaching row labels
rownames(mvad) <- paste("seq",rownames(mvad),sep="")
mvad.seq <- seqdef(mvad[17:86])
## computing the dissimilarity matrix
dist.om <- seqdist(mvad.seq, method = "OM", indel = 1, sm = "TRATE")
## assigning row and column labels
rownames(dist.om) <- rownames(mvad)
colnames(dist.om) <- rownames(mvad)
dist.om[1:6,1:6]
## Hierarchical cluster with agnes library(cluster)
cward <- agnes(dist.om, diss = TRUE, method = "ward")
## here we can see that cward has an order.lab component
attributes(cward)
To jest za uzyskanie order
z etykietami sekwencji zamiast liczb. Ale teraz nie jest dla mnie jasne, który wynik klastra chcesz w tekście/formie tabeli. Z dendrogramu wybierasz miejsce, w którym chcesz go przyciąć, tj. Liczbę żądanych grup i wycinasz dendrogram za pomocą cutree
, np. cl.4 <- cutree(clusterward1, k = 4)
. Wynik cl.4
jest wektorem z przypisaniem do klastra dla każdej sekwencji, a otrzymasz listę członków grupy 1, na przykład z rownames(mvad.seq)[cl.4==1]
.
Można również użyć metody identify
(zobacz ?identify.hclust
), aby interaktywnie wybrać grupy z wykresu, ale należy przekazać argument jako as.hclust(cward)
. Oto kod dla przykładu:
## plot the dendrogram
plot(cward, which.plot = 2, labels=FALSE)
## and select the groups manually from the plot
x <- identify(as.hclust(cward)) ## Terminate with second mouse button
## number of groups selected
length(x)
## list of members of the first group
x[[1]]
Mam nadzieję, że to pomoże.
Dziękuję bardzo! To jest bardzo pomocne! – histelheim