如何在igraph中提取社区的边缘列表?

Posted

技术标签:

【中文标题】如何在igraph中提取社区的边缘列表?【英文标题】:How to extract edge list of communities in igraph? 【发布时间】:2017-10-22 14:41:20 【问题描述】:

我使用 igraph 进行社区检测,当然它会在图表中绘制社区。 我想做的是将每个计算作为边缘列表写入文本文件中。不幸的是,我在 igraph 中找不到执行此操作的任何函数。 有人可以帮我解决这个问题吗?

karate <- make_graph("Zachary")
wc <- cluster_walktrap(karate)

【问题讨论】:

【参考方案1】:

你可以得到诱导子图,把它变成一个边缘列表并写出来。我假设您希望保留顶点的原始编号,所以我添加了一行来做到这一点。

## Your setup
library(igraph)
karate <- make_graph("Zachary")
wc <- cluster_walktrap(karate)

###########  Answer #########
for(i in seq_along(wc))  
    Community = induced_subgraph(karate, wc[[i]])
    V(Community)$name <- wc[[i]]        ## To preserve original node numbers
    EL = as_edgelist(Community)
    FileName = paste0("Community", i, ".dat")
    write.table(EL, FileName, row.names=FALSE, col.names=FALSE, sep=",")

【讨论】:

以上是关于如何在igraph中提取社区的边缘列表?的主要内容,如果未能解决你的问题,请参考以下文章

提取带标签的 Igraph 中的所有三角形

如何使用 R 为多路复用网络中的边缘着色

在 Python 中使用 igraph 进行社区检测

在igraph中构造完整的子图

r 尝试按名称索引igraph边缘失败

将加权边缘列表转换为 r 中的未加权边缘列表