3
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応答しませんでした。なんで?

4

3 に答える 3

6

これはigraphのバグです。このcommunity.to.membership関数は、ゼロベースのメンバーシップベクトルを返し、modularity1ベースのメンバーシップベクトルを期待します。

この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と同じコードが含まれています。

于 2013-01-06T03:58:47.913 に答える
0

それは私のために働きます(igraphを0.6-3に更新した後)、

> modularity(g,b)
[1] -0.05041913

Rを閉じて、igraphを更新してから、コードを再実行してみてください。

于 2012-12-28T09:17:42.613 に答える
0

igraph@Hneryと同じバージョンで同じ問題が発生します

ここに私のインストールしたバージョンの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

同じ結果は得られません。

于 2012-12-28T10:09:56.227 に答える