r语言 - 提取图中的ego_networks/sub-network



我有一个169个顶点和513条边的图。我需要提取所有的ego_networks或sub_networks,以获得每个节点及其直接邻居。我设法做到这一点,使用ego(图)产生每个节点及其直接邻域。然而,这个函数的结果是一个列表的列表,不能将每个自我作为单独的图或邻接矩阵对象提取出来。

是否有一种方法来提取每个ego_net作为一个图或邻接矩阵对象?

sub1 <- ego(graph)
#sub1 is a list of lists that contain each nodes with its direct neighbours. 
I can access each ego network by sub1[1], sub1[2], ...etc. however, I could not extract each ego
as a separate graph object. 

由于您没有提供任何数据,我将用igraphdata包中找到的karate网络来说明答案。正如您所注意到的,ego返回节点及其邻居的列表。你只需要把这些列表转化成图表。您可以使用lapplyinduced_subgraph来做到这一点。

library(igraph)
library(igraphdata)
data(karate)
sub1 <- ego(karate)
ListOfGraphs = lapply(sub1, function(x) induced_subgraph(karate, x))
class(ListOfGraphs[[1]])
[1] "igraph"

最新更新