如何在igraph
中访问图表的top3连接组件的ID?
c <- igraph::components(g, mode = 'weak')
which(c$membership == which.max(c$csize))
会给出最大的 和
which(c$membership == which.max(c$csize-1))
与c$csize-1
相同的结果只会从所有值中减去-1。
答案 0 :(得分:2)
您可以使用order
对前三大群集的成员资格进行排序和查找,并使用%in%
检查顶点是否位于其中一个群集中:
which(c$membership %in% order(c$csize, decreasing = TRUE)[1:3])
order(c$csize, decreasing = TRUE)
提供将按降序排序size
的索引(对应于群集ID); c$membership
包含所有顶点的群集ID; %in%
检查群集ID是否在前三位之内; 答案 1 :(得分:1)
您可以使用tail
提取前3个(就大小而言)组件,然后循环这些值以获取组件的成员。
top3 <- which(c$csize %in% tail(sort(c$csize),3) )
sapply(top3, function(x) which(c$membership == x))