Вопрос касается пакета cluster
. Страница справки для agnes.object
, возвращенная agnes
(см. http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/agnes.object.html) утверждает, что этот объект содержит компонент order.lab
, "похожий на order
, но содержащий метки наблюдений вместо номеров наблюдений. Этот компонент доступен только в том случае, если исходные наблюдения были помечены».
Матрица различий (в вашем случае twitter.om
), созданная TraMineR, в настоящее время не сохраняет метки последовательностей в качестве имен строк и столбцов. Чтобы получить компонент order.lab
, вы должны вручную назначить метки последовательности как rownames
, так и colnames
вашей матрицы twitter.om
. Я иллюстрирую здесь данные mvad
, предоставленные пакетом 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)
Это для получения order
с метками последовательности, а не числами. Но теперь мне не ясно, какой результат кластера вы хотите в текстовой/табличной форме. Из дендрограммы вы решаете, где вы хотите ее вырезать, т. Е. Количество групп, которые вы хотите, и вырезать дендрограмму с помощью cutree
, например. cl.4 <- cutree(clusterward1, k = 4)
. Результат cl.4
представляет собой вектор с членством в кластере для каждой последовательности, и вы получаете список членов группы 1, например, с rownames(mvad.seq)[cl.4==1]
.
В качестве альтернативы вы можете использовать метод identify
(см. ?identify.hclust
) для интерактивного выбора групп на графике, но вам нужно передать аргумент как as.hclust(cward)
. Вот код для примера
## 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]]
Надеюсь это поможет.
person
Gilbert
schedule
14.08.2012