我正在尝试使用来自R的边缘中间社区结构检测方法,使用igraph包。我想在我想要的地方“剪切”聚类树。我该怎么做呢?这有可能吗?我不明白指南中的默认值在哪里“切割”了聚类树。有人能给我更多的细节吗?
发布于 2014-08-09 23:00:09
您可以使用cutat()函数剪切来自分层社区检测方法的树状图。函数membership()也会裁剪树,但它只能在最大模块度值处对其进行裁剪:
g <- nexus.get("karate")
ebc <- edge.betweenness.community(g)
membership(ebc)
# Mr Hi Actor 2 Actor 3 Actor 4 Actor 5 Actor 6 Actor 7 Actor 8
# 1 1 2 1 3 3 3 1
# Actor 9 Actor 10 Actor 11 Actor 12 Actor 13 Actor 14 Actor 15 Actor 16
# 4 2 3 1 1 2 4 4
# Actor 17 Actor 18 Actor 19 Actor 20 Actor 21 Actor 22 Actor 23 Actor 24
# 3 1 4 1 4 1 4 5
# Actor 25 Actor 26 Actor 27 Actor 28 Actor 29 Actor 30 Actor 31 Actor 32
# 5 5 6 5 2 6 4 4
# Actor 33 John A
# 4 4 使用cutat(),您可以将其剪切以获得一定数量的社区,例如,本例中为3:
cutat(ebc, no = 3)
# [1] 2 2 1 2 2 2 2 2 1 1 2 2 2 1 1 1 2 2 1 2 1 2 1 3 3 3 1 3 1 1 1 1 1 1也可以指定要执行的合并步骤的数量。这里我们执行15次合并:
cutat(ebc, steps = 15)
# [1] 3 3 2 3 4 5 5 3 1 9 4 10 11 2 12 13 5 14 15 16 17 18 19 6 7
# [26] 6 8 7 2 8 1 1 1 1不幸的是,cutat()没有为结果指定名称。
https://stackoverflow.com/questions/25219685
复制相似问题