2012-04-12 104 views
3

我有名字的图形,从1到10如何从R和Igraph中的名称顶点获取id顶点?

library(igraph) 
library(Cairo) 

    g<- graph(c(0,1,0,4,0,9,1,7,1,9,2,9,2,3,2,5,3,6,3,9,4,5,4,8,5,8,6,7,6,8,7,8),n=10,dir=FALSE) 
    V(g)$name<-c(1:10) 
    V(g)$label<-V(g)$name 
    coords <- c(0,0,13.0000,0,5.9982,5.9991,7.9973,7.0009,-1.0008,11.9999,0.9993,11.0002,7.9989,13.0009,10.9989,14.0009,5.9989,14.0009,7.0000,4.0000) 
    coords <- matrix(coords, 10,2,byrow=T) 
    plot(g,layout=coords) 

listMn<-neighborhood(g,1,0:9) 

我想这样做,但在相反的方向

m1<-V(g)[listMn[[7]]]$name 

上面的指示得到,

7 4 8 9 

如何从名字得到listMn [[7]] = 6 3 7 8 7 4 8 9?

回答

1

节点编号从零开始:listMn[[7]]给出第7个节点(编号6,名称7)的邻居的编号,即6,3,7,8,对应于名称(将数字加1)7 ,4,8,9,

使用字符串的名称可能是减少混乱:

V(g)$name <- as.character(1:10)