Considere que temos esse quadro de dados para agrupamento.
# df
dput(df)
structure(c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L,
1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 1L), dim = c(9L, 11L), dimnames = list(c("1",
"2", "3", "4", "5", "6", "7", "8", "9"), c("C", "D", "E", "F",
"G", "H", "K", "L", "M", "N", "P")))
dist_matrix <- dist(df, method = "manhattan")
clust <- hclust(dist_matrix, method = "complete")
plot(clust)
Podemos obter os seguintes resultados de agrupamento, onde as letras itálicas são marcadores adicionais.
Permita-me usar pseudocódigo para ilustrar a função que desejo implementar.
- obter o nó esquerdo e o nó direito de um nó específico.
FUNC GET_RIGHT_NODE(D)
RETUEN E,F,G
FUNC GET_LEFT_NODE(ROOT)
RETUEN A,B,C
- obter elemento folha de nó específico
FUNC GET_LEAF(D)
RETURN 5,3,1,2,4
Tópico relacionado:
R: ajuda a analisar o conteúdo do cluster em clustering hierárquico
Como você imprime as linhas de um objeto hclust em R?
Algoritmo de agrupamento hierárquico de vizinhos mais próximos em R