library(igraph)
g=graph.famous("Zachary")
c=walktrap.community(g)
a=community.to.membership(g,c$merges,steps=2)
b=a$membership
modularity(g,b)

运行 modularity(g,b) 函数时,R 没有响应。为什么?

最佳答案

这是 igraph 中的一个错误。 community.to.membership 函数返回一个从零开始的成员资格向量,而 modularity 需要一个从 1 开始的成员资格向量。
community.to.membership 函数实际上已被弃用,而应使用 cutat 函数代替:

library(igraph)
set.seed(42)
g <- graph.famous("Zachary")
c <- walktrap.community(g)
b <- cutat(c, steps=2)
modularity(g, b)
# [1] -0.02621631

顺便提一句。您的示例不可重现,因为 walktrap.community 不是确定性的,并且您没有设置随机种子。

顺便说一句。2。 igraph 版本 0.6-1 和 0.6-3(和 0.6-x)之间没有真正的区别,破折号后面的数字只是内部版本号。由于技术原因重新构建了包,版本 0.6-3 包含与 0.6-1 相同的代码。

关于r - 关于 community.to.membership 功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14066700/

10-12 20:49