2014-09-25 150 views
2

給定圖FG,我的例子:獲取邊緣目標或源的igraph

library("igraph") 

fg <- feature.graph <- graph.empty() 

fg <- fg + vertices("root", "ho", "ha", value=c(1,2,3)) + 
    edges(c("root", "ho", "root", "ha"), label=c("en", "an"), prob=c(0.2,0.8)) 

我提取感興趣的邊緣:

> edge.of.interest <- E(fg)[from("root")][[1]] 
> edge.of.interest 
Edge sequence: 
    e    
e [1] root -> ho 

要現在得到源或目標這條邊的我可以這樣做:

> get.edge(fg, edge.of.interest) 
[1] 1 2 
> get.edge(fg, edge.of.interest)[1] 
[1] 1 
> get.edge(fg, edge.of.interest)[2] 
[1] 2 

我本來期望的功能的源和目標具有這樣的效果:

> target(edge.of.interest) 
2 

我一直無法找到這個或同等功能。通過get.edge獲得最好的方法是什麼?

+0

您試圖從邊緣獲取頂點,對不對?但是,試圖直接從圖形中獲得頂​​點不是更容易嗎?例如,函數「鄰居」? – 2014-09-25 11:16:55

+0

我將隨機遍歷圖表;當在一個給定的頂點時,任何一個離開它的邊都是以邊的屬性概率給出的概率得到的。至少在直覺上,這通過選擇邊緣更有意義。 – kasterma 2014-09-25 11:48:18

回答

8

我知道這是一個古老的問題,但它看起來像我從頭頂上有一個答案。你的意思是tail_ofhead_of

> head_of(fg, edge.of.interest)$value 
[1] 1 

> tail_of(fg, edge.of.interest)$value 
[1] 2 

另外,ends功能可能在這裏是有用的,如果兩端都需要在同一時間。

+0

你知道python中igraph是否有等價的函數嗎? – sera 2017-07-21 21:12:21