2012-12-11 4 views
1

есть функция в igraph для расчета нет. и размер каждого подключенного компонента на основе атрибутов. т.е. подмножества вершин «связаны» их атрибутами.связанная длина

library(igraph) 
## create example graph 
g1 <- graph.full(5) 
V(g1)$name <- 1:5  
g2 <- graph.full(5) 
V(g2)$name <- 6:10 
g3 <- graph.ring(5) 
V(g3)$name <- 11:15 
g <- g1 + g2 + g3 + edge('1', '6') + edge('1', '11') 

##defining attribute to subset of vertices 
hh<-1:vcount(g) %in% c(7,6,1,13,14) 
g<-set.vertex.attribute(g, name="selected" ,value=0) 
g<-set.vertex.attribute(g, name="selected",hh, value=1) 

#plotted out 
vc="[<-"(rep('black',vcount(g)),c(7,6,1,13,14),'red') 
plot(g,vertex.color=vc, vertex.label.color="white") 

, что я могу думать в этот момент является regraph, используя только выбранные вершины и запустить функцию clusters. Есть ли более простой метод?

+0

жаль, но я не могу понять, что вы хотите точно? можете ли вы объяснить вывод этой функции? – agstudy

ответ

2

Вы можете использовать induced.subgraph или subgraph зависят в вашем igraph Verion

 clusters(induced.subgraph(g,V(g)[V(g)$selected == 1])) 

$membership 
[1] 1 1 1 2 2 

$csize 
[1] 3 2 

$no 
[1] 2 
+0

@WesleyGoi делает этот ответ на ваш вопрос? – agstudy

+0

да, это так, спасибо за подсказку на insp.subgraph! – Buthetleon