如何在 igraph 中提取社区的边缘列表?
How to extract edge list of communities in igraph?
我正在使用 igraph 进行社区检测,当然它会在图中绘制社区。
我想做的是将每个计算机写为文本文件中的边缘列表。不幸的是,我在 igraph 中找不到执行此操作的任何功能。
有人可以帮我解决这个问题吗?
karate <- make_graph("Zachary")
wc <- cluster_walktrap(karate)
你可以得到导出的子图,把它变成一个边缘列表,然后写出来。我假设您希望保留顶点的原始编号,所以我添加了一行来做到这一点。
## 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 中找不到执行此操作的任何功能。 有人可以帮我解决这个问题吗?
karate <- make_graph("Zachary")
wc <- cluster_walktrap(karate)
你可以得到导出的子图,把它变成一个边缘列表,然后写出来。我假设您希望保留顶点的原始编号,所以我添加了一行来做到这一点。
## 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=",")
}