我想提取树状图或群集的节点的层次结构。
例如,在下一个示例中:
library(dendextend) dend15 <- c(1:5) %>% dist %>% hclust(method = "average") %>% as.dendrogram dend15 %>% plot
根据节点在树状图中的位置对其进行分类(请参见下图)
(图摘自dendextend包的教程)
我想获取每个最终叶子的所有节点作为下一个输出:(标签从左到右,从下到上排序)
hierarchical structure leaf_1: 3-2-1 leaf_2: 4-2-1 leaf_3: 6-5-1 leaf_4: 8-7-5-1 leaf_5: 9-7-5-1
提前致谢,
首先,我找到所有使用节点的子树(即结构)。在您的示例中,将有9个节点。
subtrees <- partition_leaves(dend15) leaves <- subtrees[[1]] # assume top node is used by all subtrees
我创建了一个辅助函数来查找每个叶子的路线,并将其应用于所有叶子。
pathRoutes <- function(leaf) { which(sapply(subtrees, function(x) leaf %in% x)) } paths <- lapply(leaves, pathRoutes)
列表形式的原始输出,其中每个列表元素都是末端节点/叶子的结构
> paths [[1]] [1] 1 2 3 [[2]] [1] 1 2 4 [[3]] [1] 1 5 6 [[4]] [1] 1 5 7 8 [[5]] [1] 1 5 7 9