我有一个包含169个顶点和513条边的图。我需要提取所有的ego_networks或sub_networks来得到每个节点及其直接邻居。我设法使用ego(图)来实现这一点,它生成每个节点及其直接邻域。然而,此函数的结果是一个列表列表,无法将每个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. 发布于 2021-01-15 08:24:45
由于您没有提供任何数据,因此我将使用igraphdata包中的karate网络来说明答案。正如您所提到的,ego返回节点及其邻居的列表。因此,您只需要将这些列表中的每一个都转换为图形。您可以使用lapply和induced_subgraph来实现这一点。
library(igraph)
library(igraphdata)
data(karate)
sub1 <- ego(karate)
ListOfGraphs = lapply(sub1, function(x) induced_subgraph(karate, x))
class(ListOfGraphs[[1]])
[1] "igraph"https://stackoverflow.com/questions/65725874
复制相似问题