gpt4 book ai didi

r - 如何在 R 中使用 igraph 删除小社区?

转载 作者:行者123 更新时间:2023-12-02 00:28:10 27 4
gpt4 key购买 nike

我从数据集“allgenes”创建了我的 igraph,并找到了基于 louvain 方法的社区模块。

gD <- igraph::simplify(igraph::graph.data.frame(allgenes, directed=FALSE))
lou <- cluster_louvain(gD)

绘制模块时,我注意到有几个我希望删除的小社区。如何删除包含 5 个或更少节点的社区?

plot(lou, gD, vertex.label = NA, vertex.size=5, edge.arrow.size = .2)

绘制不同模块的图:

img

最佳答案

由于您没有提供示例,我将用随机生成的数据进行说明。

## First create an example like yours
library(igraph)
set.seed(123)
gD = erdos.renyi.game(50,0.05)
lou <- cluster_louvain(gD)
LO = layout_with_fr(gD)
plot(lou, gD, vertex.label = NA, vertex.size=5,
edge.arrow.size = .2, layout=LO)

G1

## identify which communities have fewer than 5 members
Small = which(table(lou$membership) < 5)

## Which nodes should be kept?
Keep = V(gD)[!(lou$membership %in% Small)]

## Get subgraph & plot
gD2 = induced_subgraph(gD, Keep)
lou2 = cluster_louvain(gD2)
LO2 = LO[Keep,]
plot(lou2, gD2, vertex.label = NA, vertex.size=5,
edge.arrow.size = .2, layout=LO2)

G2

小社区已被删除

关于r - 如何在 R 中使用 igraph 删除小社区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51271730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com