2014-12-05 60 views
0

我有一個擁有數千個羣集的網絡(g),但我似乎無法弄清楚如何按大小排序。它看起來像成員資格屬性有點任意排序羣集。例如:按羣集大小排序羣集列表R igraph

c <- clusters(g) 
c$membership 
gs <- induced.subgraph(g, c$membership==1) 

這的確會給我最大的集羣,但如果我嘗試

gs <- induced.subgraph(g, c$membership==2) 

它不給我的第二大產業集羣,但出現這種情況是第二個任意集羣在列表中。

有沒有辦法根據簇大小訂購c$membership,即1 - 最大,2 - 最大等?

回答

1

你可以這樣來做:

# largest subgraph 
gs <- induced.subgraph(g, c$membership==order(-c$csize)[1]) 
# second largest subgraph 
gs <- induced.subgraph(g, c$membership==order(-c$csize)[2]) 
# etc... 

這裏的工作的例子。

library(igraph) 
g <- graph.full(5) %du% graph.full(4) %du% graph.full(3) 
set.seed(1) # for reproducible plots 
par(mar=c(0,0,0,0),mfrow=c(1,2)) 
plot(g) 
c <- clusters(g) 
gs <- induced.subgraph(g, c$membership==order(-c$csize)[1]) 
plot(gs) 

+0

感謝,這有助於! – Zlo 2014-12-05 21:28:32