2011-02-05 17 views
13

私はiGraphライブラリを使用していますので、ネットワーク上で統計解析を実行する必要があります。私はiGraphを使っていくつかの変数を計算し、それらの指標をいくつかの回帰では従属変数として使用し、頂点属性はモデルでは独立変数として使用したいと考えています。igraphオブジェクトをRフレームのデータフレームに変換します

データをロードしてigraph分析を実行できますが、igraphオブジェクトをデータフレームに戻すことができません。私は実際にはエッジを保存する必要はありません。各頂点は、各行の列として機能する属性を持つ観測に変換されるだけです。

私は次のことを試してみました:

fg <- fastgreedy.community(uncompg, merges=TRUE) 
z<-which.max(fg$modularity) 
fgc<- community.to.membership(uncompg, fg$merges,z) 
names<-array(V(uncompg)$name) 
fccommunity<-array(fgc$membership) 
fcresult<-as.matrix(cbind(names,fccommunity)) 
compg <- set.vertex.attribute(compg, "community", value=fccommunity) 

uncompg<-simplify(as.undirected(compg)) 
hubscore<-hub.score(compg)$vector 
authscore<-authority.score(compg)$vector 

netdata<-as.data.frame(compg) 

をしかし、それは次のようなエラーがスローされます。

cannot coerce class '"igraph"' into a data.frame 

すべてのヘルプやポインタをいただければ幸いです。

+0

私は前にIGRAPHデータに働いていないが、あなたは簡単な再現性の例を提供することができれば、私はおそらく可能性igraphクラスからデータを抽出します。 –

+0

igraph *パッケージ* – Spacedman

+0

はい、igraphパッケージを意味します。まだ言葉を落としている。 –

答えて

19

あなたは何をしようとしているのかよく分かりません。関係をデータフレームとして、またはノード属性をデータフレームとして使用しますか?

前者を行うには:

> compg.edges <- as.data.frame(get.edgelist(compg)) 

を、後者を行うには:

> compg.df <- as.data.frame(list(Vertex=V(compg), Community=fccommunity, Hubscore=hubscore, Authscore=authscore), stringsAsFactors=FALSE) 
+0

私は実際に後でやろうとしていましたが、前者は非常に便利です。私はいくつかのロジット分析を実行するために、計算されたネット属性をデータフレームに戻そうとしています。 –

+0

ところで、私はあなたのブログが大好きです! –

関連する問題