在R中按距离聚类

qed*_*qed 3 r cluster-analysis

我有一个整数向量,我希望将其分成簇,以便任意两个簇之间的距离大于下限,并且在任何簇内,两个元素之间的距离小于上限.

例如,假设我们有以下向量:

1,4,5,6,9,29,32,36

并将上述下限和上限分别设置为19和9,下面的两个向量应该是一个可能的结果:

1,4,5,6,9

29,32,36


感谢@flodel的评论,我意识到这种聚类可能是不可能的.所以我想稍微修改一下这些问题:

如果我只集群距离下限之间强加什么可能的聚类方法?如果我仅 集群距离上限施加了什么可能的聚类方法?

flo*_*del 6

如果我只在集群距离下限之间强加什么可能的聚类方法?

具有单个链接的分层聚类:

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
Run Code Online (Sandbox Code Playgroud)

如果我仅在集群距离上限内施加了什么可能的聚类方法?

具有完整链接的分层聚类:

x <- c(1, 4, 5, 6, 9, 20, 26, 29, 32)
tree <- hclust(dist(x), method = "complete")
split(x, cutree(tree, h = 9))

# $`1`
# [1] 1 4 5 6 9
# 
# $`2`
# [1] 20
# 
# $`3`
# [1] 26 29 32
Run Code Online (Sandbox Code Playgroud)