2013-04-07 50 views
14

我想通过边缘特征(如其标签)来划分igraph子集。在重复的例子,我已经无耻地从另一篇文章中有一点点修改被盗,我想能够独立于家庭关系最好的朋友关系(BF)(FAM):按标签划分的igraph图形

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" 

尽我所能做迄今显示其具有一种类型的领带的边缘:

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

回答

18

怎么样:

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) 

建议为的igraph /网络分析教程/无耻插头:http://sna.stanford.edu/rlabs.php

16

我建议你阅读?V?E以了解如何选择边和顶点。相当紧凑,可读的解决你的问题是

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

这消除了顶点为好,如果他们没有指定标签的事件边缘。详情请参阅?subgraph.edges

+0

谢谢!我不知道子图命令。 – 2013-04-09 03:17:36