我想构造一个有向网络图的子图,其中所有顶点共享某个顶点属性(例如,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")
产生一张图表列表(而不是一张完整的图表),令人惊讶的是,今年要绘制5万个顶点需要花费两个小时,而要指出的是15万个邻居。
我想到的一种方法是将列表中的所有这些图汇总起来,但不知道如何做。另外,我想保留顶点属性,因为我的最终目标是根据另一个顶点属性(在这种情况下为地理位置)来计算assortativity_nominal()
。
预先感谢您的任何建议!
最佳答案
实际上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)
(我使用的是有向图。)
希望能帮助到你。
关于r - igraph-邻居作为子图-make_ego_graph()作为单个图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36134840/