我有一个包含 169 个顶点和 513 条边的图。我需要提取所有 ego_networks 或 sub_networks 以获得每个节点及其直接邻居。我设法使用 ego(graph) 来做到这一点,它生成每个节点及其直接邻域。然而,这个函数的结果是一个列表的列表,无法将每个 self 提取为单独的 igraph 或邻接矩阵对象。
有没有办法将每个 ego_net 提取为 igraph 或邻接矩阵对象?
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 返回节点及其邻居的列表。因此,您只需将每个列表转换为图表即可。您可以使用 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"
关于r - 在 igraph 中提取 ego_networks/子网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65725874/