提取社区节点与每个社区的其他节点之间的边的列表

马克西姆·莫罗兹

假设我们有一个简单的加权网络,在该网络上执行某种类型的社区检测。接下来,我们提取特定的社区,最后的任务是提取该社区的节点与所有其他节点之间的所有边。

下面我粘贴了玩具代码。

# Create toy graph
library(igraph)
set.seed(12345)
g <- make_graph("Zachary")
# Add weights to edges
E(g)$weight <- sample(x = 1:10, size = ecount(g), replace = TRUE)
# Run community detection
cl <- cluster_louvain(g)

有5个属于社区#1的节点,有12个属于社区#2的节点,依此类推。

> table(membership(cl))
 1  2  3  4 
 5 12  2 15

现在我们提取社区#1:

g1 <- induced_subgraph(g, which(cl$membership == 1))

问题:如何查找将社区#1中的节点与所有其他节点连接的边(不包括定义社区#1的边)?

以下是与某些社区相关的答案

您首先要获得社区中的所有优势:

all_edges <- E(g)[inc(V(g)[membership(cl) == 1])]
all_edges
+ 10/78 edges:
 [1] 1-- 5 1-- 6 1-- 7 1--11 5-- 7 5--11 6-- 7 6--11 6--17 7--17

然后,过滤掉完全内部的顶点(两个顶点都在社区中):

all_edges_m <- get.edges(g, all_edges) #matrix representation

all_edges[!(
 all_edges_m[, 1] %in% V(g)[membership(cl) == 1] & 
   all_edges_m[, 2] %in% V(g)[membership(cl) == 1]
 )] # filter where in col1 and col2
+ 4/78 edges:
[1] 1-- 5 1-- 6 1-- 7 1--11

但是对我而言,有必要获取包含每个社区的那些节点的整个列表。不只是一个。有什么建议可以创建此循环吗?如果是这样,那就太好了:)

本用户

这是我对您的问题的看法:

library(igraph) 
set.seed(12345)
g <- make_graph("Zachary")
E(g)$weight <- sample(x = 1:10, size = ecount(g), replace = TRUE)
cl <- cluster_louvain(g)

将成员资格添加为顶点属性

V(g)$name <- membership(cl)

获得边缘列表

x <- as_edgelist(g, names = T)

这是连接不同社区的顶点的所有边

V(g)$name <- 1:vcount(g)
E(g)[x[,1] != x[,2]]

可选支票

 E(g)$color <- ifelse(x[,1] != x[,2], "red", "blue")
 plot(g, edge.color = E(g)$color)
 plot(cl, g)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

提取社区节点和其他节点之间的边

从节点列表中提取边缘和社区

从社区共现矩阵到每个节点的社区指数

在python中使用iGraph进行社区检测并将每个节点的社区编号写入CSV

在Louvain社区检测中检查节点属于哪个社区

连接的节点与其他边或节点重叠

如何从networkx吸引特定社区,而忽略其他社区?

标识节点位于其他两个节点之间

是否有 networkx 函数来计算社区之间的边数?

在CLISP中提取节点形成虚线列表(边)

如何遍历每个节点中的列表属性并查看它是否出现在其他节点属性中?

在与neo4j中其他节点具有相同关系的节点之间创建链接列表关系

datastax opscenter社区版是否支持多个节点?

解析社区节点-apn fork - 发送作业挂起

Neo4j在节点周围找到社区

获取节点列表中的边

从任意节点列表生成边

为什么foreach%dopar%随每个其他节点变慢?

如何通过R中的网络围绕给定节点(通过设置自己的种子节点)扩展社区?

图中每个节点与列表中元素之间的最短路径

添加一个节点并使用 igraph 与每个其他节点连接

删除包含其他节点地址的节点

分叉/联接节点对令牌的行为与活动图的其他节点之间的区别

如何减少其他节点上方的2个节点之间的空间?

头节点和其他节点之间的区别是什么?

匹配两个节点并保持其他各个节点之间的路径

如何在HBox的其他两个节点之间添加节点?

Xpath,在其他两个节点之间查找节点

如何允许用户在节点之间添加边?