16

私は iGraph ライブラリを使用しており、ネットワーク上で統計分析を実行する必要があります。iGraph を使用していくつかの変数を計算してから、これらの指標をいくつかの回帰で従属変数として使用し、頂点属性をモデルの独立変数として使用したいと考えています。

したがって、データをロードして 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

どんな助けや指針も大歓迎です。

4

1 に答える 1

30

あなたが何をしようとしているのかよくわかりません。リレーションシップをデータフレームとして使用しますか、それともノード属性をデータフレームとして使用しますか?

前者を行うには:

> 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)
于 2011-02-06T17:16:29.827 に答える