1

我有一个被分成两个集群的向量(如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
4

1 回答 1

1

就像你为x

split(y, cutree(tree, h = 19))

而且由于您现在cutree(tree, h = 19)在多个地方使用,您不妨将它分配给一个变量:

groups <- cutree(tree, h = 19)
split(x, groups)
split(y, groups)
于 2013-06-23T13:27:44.530 回答