边缘序列按顶点名称

时间:2010-09-14 16:15:53

标签: r labels vertex igraph edges

好吧,我正在使用igraph包,我想用我给它们的顶点指定的名称来选择边缘,只是一个很小的例子。

library(igraph)

g <- barabasi.game(8)

labels<-c("G1","G2","G3","T1","T2","T3","H1","H2")

V(g)$name<-labels

现在我的边缘列表有这种形式

> E(g)
Edge sequence:

    [0] G2 -> G1
    [1] G3 -> G2
    [2] T1 -> G2
    [3] T2 -> G3
    [4] T3 -> G1
    [5] H1 -> G1
    [6] H2 -> H1

我现在想要的是找到一种方法,而不是使用这个

E(g)[1%--%2]

执行更像E(g)[G2% - %G1](通过我指定的名称调用顶点),或者通过所涉及的顶点名称了解某些边缘属性的等效方法。< / p>

2 个答案:

答案 0 :(得分:0)

这对于igraph的0.5分支是不可能的,但是开发版本(0.6)增加了对基于它们的name属性而不是它们的数字ID引用顶点的支持。由于我不熟悉R接口,我不知道该怎么做。尝试订阅igraph-help mailing list并询问,因为这绝对是最近在igraph 0.6中解决的问题。

答案 1 :(得分:0)

将顶点名称括在引号中。这使得使用顶点数的输出相同。这适用于igraph 0.7.1。

例如:

> E(g)[1%--%8]
Edge sequence:
    e         
e [7] H2 -> G1

> E(g)['H2'%--%'G1']
Edge sequence:
    e         
e [7] H2 -> G1