我有一个igraph,顶点有一个描述已知社区的属性:
g=sample_gnm(10, 30, directed = F, loops = F)
communities=c("a", "b", "c")
E(g)$known_community=sample(communities, length(E(g)), replace = T)
然后我通过fastgreedy检测社区:
g_com=fastgreedy.community(g)
我需要将算法检测到的社区与已知社区进行比较。有没有办法从顶点信息中获取igraph社区对象,所以我可以使用compare()?如果不是,我怎么能比较它们?
答案 0 :(得分:1)
查看?help
的{{1}}页面。它说:
包含社区结构的社区对象;或数字 向量,第一个社区结构的成员向量。该 membership vector应该包含每个顶点的社区id 社区的编号从一个开始。
因此compare
可以比较compare
个对象或数字向量,其长度与顶点数相同。您模拟了一个包含10个顶点的网络,因此您的社区列表也应该有10个长度。您的错误是您尝试根据边缘而不是顶点来定义社区向量,因此您可以向量长度为30.
以下方法有效。
communities