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没有响应。为什么?
发布于 2013-01-06 11:58:48
这是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不是确定性的,并且您没有设置随机种子。
Btw2.在igraph版本0.6-1和0.6-3 (和0.6-x)之间没有真正的区别,破折号后面的数字只是内部版本号。由于技术原因,包被重新构建,版本0.6-3包含与0.6-1相同的代码。
发布于 2012-12-28 17:17:43
它适用于我(在将igraph更新到0.6-3之后),给出
> modularity(g,b)
[1] -0.05041913您可以尝试关闭R,更新igraph,然后重新运行代码。
发布于 2012-12-28 18:09:56
我使用与@Hnery相同版本的igraph时遇到了同样的问题
下面是我安装的igraph版本:
subset(as.data.frame(installed.packages()) , Package == 'igraph', select =c('Package','Version'))
Package Version
igraph igraph 0.6-3当我像这样替换成员向量(b)中的0时,它是有效的:
b[b==0] <- 1
> modularity(g,b)
[1] -0.04191321我没有同样的结果。
https://stackoverflow.com/questions/14066700
复制相似问题