我有一个被分为两个簇的向量(如this question中所述):
x <- c(1, 4, 5, 6, 9, 29, 32, 46, 55)
tree <- hclust(dist(x), method = "single")
split(x, cutree(tree, h = 19))
# $`1`
# [1] 1 4 5 6 9
#
# $`2`
# [1] 29 32 46 55
现在假设我有另一个长度相同的聚类,我希望通过与x相同的索引将它们分成相同数量的聚类,以下面的向量y为例:
set.seed(77)
y = rnorm(9)
y
#[1] -0.54964 1.09105 0.63978 1.04258 0.16970 1.13780 -0.97055 -0.13183
#[9] 0.14623
期望的结果应该是这样的:
# $`1`
# [1] -0.54964 1.09105 0.63978 1.04258 0.16970
#
# $`2`
# [1] 1.13780 -0.97055 -0.13183 0.14623
答案 0 :(得分:1)
就像你对x
所做的那样:
split(y, cutree(tree, h = 19))
由于您现在在多个地方使用cutree(tree, h = 19)
,因此您也可以将其分配给变量:
groups <- cutree(tree, h = 19)
split(x, groups)
split(y, groups)