2017-02-16 6 views
1

私は二部構成のネットワークを表すエッジリストを持っています。Edgelistを使用して二部グラフから所属ネットワークを構築する

ID1 ID2 
    1 123 
    1 124 
    1 125 
    2 123 
    2 126 
    3 127 
    3 123 
    3 130 

ID1は、俳優の1クラスであり、ID2は、俳優の別のクラスです。アクタークラスの属性(ID1のすべての頂点を1つのクラス、ID2のすべての頂点を別のクラスとします)をバイパータイトネットワーク分析に使用するにはどうすればよいですか。さらに、2つの別々のグラフとして所属ネットワークを抽出し、それらをエクスポートしたいと考えています。

データフレームを再現するコードはここに事前に

x<-as.data.frame(matrix(c(1,1,1,2,2,3,3,3,123,124,125,123,126,127,123,130),8,2)) 
colnames(x) <- c("ID1", "ID2") 
g <- graph.data.frame(x, directed=F) 

感謝を見つけることができます!

+0

あなたが何を求めているのか分かりません。ここに希望の出力は何ですか?グラフ 'g'はどのように変更する必要がありますか? – MrFlick

+0

私は二部グラフを作成することはできませんが、値を割り当てるための解決策はありません(igraphドキュメントによると、あるクラスのアクターにTRUEを割り当てる必要があり、もう一つのクラスにはFALSE二分グラフとして検出するために)を列に追加します。これでもう少し明確になることを願っていますか? – PCK1992

答えて

0

基本的には、data.frameのデータを使用して頂点に型属性を割り当てるだけです。たとえば、

is_bipartite(g) 
# [1] FALSE 
V(g)$type <- V(g)$name %in% x[["ID1"]] 
is_bipartite(g) 
# [1] TRUE 

このコードでは、頂点の名前を使用して最初の列のすべての値をTRUEに設定します。

関連する問題