R中Igraph中的顶点数

时间:2015-05-10 14:13:18

标签: r igraph

我对R中的IGraph很新。

我正在使用IGraph进行社区检测,并且已经使用walktrap技术构建了我的社区/群集。

接下来,在每个聚类中,我想计算每两个特定顶点之间的顶点数。我想这样做的原因是,对于每个顶点XX,我想列出连接到XX的顶点,通过说最多3个顶点,意味着距离XX不超过3个顶点。

任何人都可以帮助在R中如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

制作随机图(用于演示):

g <- erdos.renyi.game(100, 1/25)
plot(g,vertex.size=3)

获取walktrap社区并保存为顶点属性:

V(g)$community<-walktrap.community(g, modularity = TRUE, membership = TRUE)$membership
V(g)$community

现在制作一个只包含一个社区的边和顶点的子图,例如社区2:

sub<-induced.subgraph(g,v=V(g)$community==2)
plot(sub)

制作一个包含所有最短路径的矩阵:

shortestPs<-shortest.paths(sub)

现在计算小于或等于3的最短路径的数量。

我还排除了从每个节点到自身的最短路径(shortestPaths!= 0)。

也除以2,因为对于无向图,每个节点对在矩阵中出现两次。

Number_of_shortest_paths_smaller_3 <- length(which(shortestPs<=3 & shortestPs!=0))/2
Number_of_shortest_paths_smaller_3

希望接近你所需要的,祝你好运!