首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于community.to.membership函数

关于community.to.membership函数
EN

Stack Overflow用户
提问于 2012-12-28 16:25:33
回答 3查看 2.8K关注 0票数 3
代码语言:javascript
复制
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没有响应。为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-06 11:58:48

这是igraph中的一个错误。community.to.membership函数返回一个从零开始的成员向量,而modularity需要一个从1开始的成员向量。

实际上,community.to.membership函数已被弃用,应该改用cutat函数:

代码语言:javascript
复制
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相同的代码。

票数 6
EN

Stack Overflow用户

发布于 2012-12-28 17:17:43

它适用于我(在将igraph更新到0.6-3之后),给出

代码语言:javascript
复制
> modularity(g,b)
[1] -0.05041913

您可以尝试关闭R,更新igraph,然后重新运行代码。

票数 0
EN

Stack Overflow用户

发布于 2012-12-28 18:09:56

我使用与@Hnery相同版本的igraph时遇到了同样的问题

下面是我安装的igraph版本:

代码语言:javascript
复制
subset(as.data.frame(installed.packages()) , Package == 'igraph', select =c('Package','Version'))
       Package Version
igraph  igraph   0.6-3

当我像这样替换成员向量(b)中的0时,它是有效的:

代码语言:javascript
复制
 b[b==0] <- 1
> modularity(g,b)
[1] -0.04191321

我没有同样的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14066700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档