2013-04-07 13 views
14

Bir igraph grafiğini bir kenar karakteriyle (etiketinde olduğu gibi) alt kümeye almaya çalışıyorum.Etiket altına göre igraph grafiği

edges <- matrix(c(103, 86, 24, 103, 103, 2, 92, 103, 87, 103, 103, 101, 103, 44), ncol=2, byrow=T) 
g <- graph(as.vector(t(edges))) 
E(g)[c(2:4,7)]$label<-"FAM" 
E(g)[c(1,5,6)]$label<-"BF" 

elimden gelenin en: Ben utanmadan biraz değişiklikle başka bir yazı çalınmasının tekrarlanabilir örnekte, Aile Bağları iyi arkadaşı bağları (BF) (FAM) ayırmak mümkün olmak istiyorum

E(g)[E(g)$label=="BF"] 
V(g)[E(g)$label=="BF"] 

cevap

18

nasıl: iGRAPH/ağ analizi öğretici/utanmaz bir fiş için

gfam <- subgraph.edges(graph=g, eids=which(E(g)$label=="FAM"), delete.vertices = TRUE) 
gbf <- subgraph.edges(graph=g, eids=which(E(g)$label=="BF"), delete.vertices = TRUE) 

Öneri: bugüne kadar bunu kravat bir tür olan kenarları görüntülemek olduğu http://sna.stanford.edu/rlabs.php

16

Kenarları ve köşeleri nasıl seçeceğinizi görmek için ?V ve ?E okumanızı öneririm. Sorunuza bir oldukça kompakt ve okunabilir çözüm

subgraph.edges(g, E(g)[label=="FAM"]) 
subgraph.edges(g, E(g)[label=="BF"]) 

onlar belirtilen etiketin bir olay kenar var yoksa bu, hem de tepe noktalarını kaldırır. Detaylar için bkz. ?subgraph.edges.

+0

Teşekkürler! Alt komutları bilmiyordum. –

İlgili konular