igraph - 作为子图的邻居 - make_ego_graph()作为单个图

use*_*099 8 r igraph network-analysis

我想构建一个有向网络图的子图,其中所有顶点共享一个顶点属性(比如,V(Grph)$ year =="1952")和它们的一阶(立即)邻居,基于只有在外面.

我试过ego(),make_ego_graph(),neighbors(),和adjacent_vertices().

例如, CitGraph <- make_ego_graph(Grph, 1, nodes = which(V(Grph)$year=="1952"), mode = "out") 产生一个图表列表(而不是单个综合图表),并且令人惊讶的是,今年50k顶点需要两个小时,并且指向了150k个邻居.

我能想到的一种方法是聚合列表中的所有这些图,但不知道如何.此外,我想保留顶点属性,因为我的最终目标是assortativity_nominal()根据另一个顶点属性(在这种情况下为地理位置)进行计算.

预先感谢您提出的任何建议!

lrn*_*cig 5

实际上,make_ego_graph返回列表中每个顶点的邻域图nodes.

我建议你使用你需要包含在子图中的边列表来解决它,而不是顶点列表.假设您的顶点列表已被解决,list_of_vertices <- V(Grph)$year == "1952"或者您的条件是什么,您可以这样做,

list_of_edges <- E(your_graph)[from(list_of_vertices) | to(list_of_vertices)]
your_subgraph <- subgraph.edges(your_graph, list_of_edges)
Run Code Online (Sandbox Code Playgroud)

(我正在使用有向图.)

希望能帮助到你.