【问题标题】:extract ego_networks/sub-network in igraph在 igraph 中提取 ego_networks/sub-network
【发布时间】:2021-04-19 21:06:05
【问题描述】:

我有一个包含 169 个顶点和 513 个边的图。我需要提取所有 ego_networks 或 sub_networks 以获取每个节点及其直接邻居。我设法使用 ego(graph) 来做到这一点,它产生每个节点及其直接邻居。但是,此函数的结果是列表列表,无法将每个自我提取为单独的 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. 

【问题讨论】:

标签: r igraph sna


【解决方案1】:

由于您没有提供任何数据,我将用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"

【讨论】:

  • 要查看其中一个自我网络的示例,可以简单地使用 plot(ListOfGraphs[[1]]) 或任何其他索引而不是 1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
相关资源
最近更新 更多