Skip to main content
 首页 » 编程设计

r之R中的网络模块化计算

2025年05月04日205dudu

Network Modularity 的方程在其维基百科页面(和著名的书籍)上给出。我想看到它在一些代码中工作。我发现这可以使用 modularity library对于 igraph与 R (The R Foundation for Statistical Computing) 一起使用。

我想看看代码中用于计算模块性的下面的示例(或类似的示例)。该库给出了示例,但这并不是我真正想要的。

让我们有一组顶点 V = {1, 2, 3, 4, 5} 和边 E = {(1,5), (2,3), (2,4), (2,5) (3 ,5)} 形成一个无向图。

将这些顶点划分为两个社区:c1 = {2,3} 和 c2 = {1,4,5}。要计算的是这两个社区的模块化。

请您参考如下方法:

library(igraph) 
g <- graph(c(1,5,2,3,2,4,2,5,3,5)) 
membership <- c(1,2,2,1,1) 
modularity(g, membership) 

这里有一些解释:
  • 我在创建图形时使用的向量是图形的边列表。 (在 0.6 之前的 igraph 版本中,我们必须从数字中减去 1,因为当时 igraph 使用从零开始的顶点索引,但不再使用了)。
  • 隶属向量的第 i 个元素 membership给出顶点 i 所属社区的索引.