2016-03-21 11 views
8

すべての頂点が特定の頂点属性を共有する有向ネットワークのグラフのサブグラフを作成したいとします(たとえば、V(Grph)$ year == "1952")とそれらの一次(即時)近辺はアウトディグリーにのみ基づいています。igraph - サブグラフとしての隣人 - 単一グラフとしてのmake_ego_graph()

私は、ego()make_ego_graph()neighbors()、およびadjacent_vertices()を試しました。例えば

CitGraph <- make_ego_graph(Grph, 1, nodes = which(V(Grph)$year=="1952"), mode = "out") はグラフのリスト(およびない単一の包括的な1)が得られると、驚くほどに指摘され、今年で50Kの頂点と150kの隣人のために2時間かかります。

私が考えることができるアプローチの1つは、リスト内のすべてのグラフを集計することですが、方法はわかりません。また、別の頂点属性(この場合は地理的位置)に基づいてassortativity_nominal()を計算することが究極の目標であるため、頂点属性を保持したいと思います。

ありがとうございます、ご提案ありがとうございます!

答えて

5

実際にmake_ego_graphは、リスト内の各頂点の近傍のグラフを返しますnodes

頂点のリストではなく、サブグラフに含める必要があるエッジのリストを使用して解決することをお勧めします。

list_of_edges <- E(your_graph)[from(list_of_vertices) | to(list_of_vertices)] 
your_subgraph <- subgraph.edges(your_graph, list_of_edges) 

は(私は有向グラフを使用しています。)

、頂点のリストを想定し list_of_vertices <- V(Grph)$year == "1952"のように解決されたか、それはあなたの状態が何であれ、あなたは何かなどを行うだろう

それがお役に立てば幸いです。

+0

偉大な、それは完全に動作します、ありがとう!私の例では、私はあなたのコードの最初の行を 'list_of_edges < - E(your_graph)[from(list_of_vertices)]'に調整しなければなりませんでした。なぜなら私は1952頂点の間のエッジだけでなく、それら。 – user5835099

+0

あなたは大歓迎です。乾杯。 – lrnzcig

関連する問題