3

2 つの質問があります。

1- igraph を使用して R で重複するコミュニティ構造を発見できるかどうか疑問に思っていましたか?

2- LinkComm パッケージが同様のことを実行できることがわかりました (onverlapping コミュニティ構造を見つける) が、igraph ネットワークを受け入れることはできません。LinkComm 機能を igraph グラフに適用することは可能ですか?

前もって感謝します、

4

1 に答える 1

3

linkcommオブジェクトでパッケージを使用するための (やや汚い) トリックを次に示しigraphます。問題はlinkcommigraph0パッケージを使用し、igraphオブジェクトのフィールドを直接使用することです。これはお勧めしません。彼らのアプローチはパッケージでは機能しますが、igraph グラフのインデックス演算子を定義するため、パッケージigraph0では機能しません。igraphigraph[[

とにかく、以下はlinkcommパッケージから関数を上書きするだけです。パッケージバージョン 1.0-6 (2011-05-27) で動作しますが、それ以外のバージョンではほぼ確実に動作しません。適切な修正はlinkcomm、その作成者によるパッケージの更新です。

library(linkcomm)

# This will result a long warning about masked objects, because igraph 
# defines almost all names igraph0 defines, and linkcomm loads igraph0.
# But we are fine if we load igraph after linkcomm, because by default
# the igraph functions will be used
library(igraph)

# Modify the function from the linkcomm package, we create a new 
# function called 'lc'
lc <- as.list(getLinkCommunities)
lc[[11]][[10]][[3]] <- call("get.edgelist", quote(x), names=FALSE)
lc <- as.function(lc)

# Get some test data
karate <- nexus.get("karate")

# Use the newly defined 'lc' function on the test data
karcomm <- lc(get.data.frame(karate), check.duplicates=FALSE)

結果プロット

于 2013-02-14T07:23:57.437 に答える