8

我想构建一个有向网络图的子图,其中所有顶点共享某个顶点属性(例如,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()根据另一个顶点属性(在这种情况下为地理位置)计算 。

提前感谢您的任何建议!

4

1 回答 1

7

Indeedmake_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)

(我正在使用有向图。)

希望能帮助到你。

于 2016-03-22T11:40:20.970 回答