2016-10-04 28 views
0

我想訪問get.shortest.paths的'epath'輸出並獲取邊的名稱,而不是ID的名稱。目前,我有邊緣ID,但我需要邊緣的名稱。例如:如何訪問get.shortest.paths的'epath'輸出以獲取邊緣名稱?

# create graph 
solid = graph_from_literal(A-D,A-C,D-F,D-C,C-B,B-E) 

# get edges of shortest paths 
solid.epaths = get.shortest.paths(solid, from = 1, to = V(solid),output = 'epath') 

# get verticies of shortest paths 
solid.vpaths = get.shortest.paths(solid, from = 1, to = V(solid),output = 'vpath') 

我可以訪問名稱verticies的:

names(unlist(solid.vpaths$vpath[4])) 

但我不能訪問邊緣的名稱,它只是出現空:

names(unlist(solid.epaths$epath[4])) 

如果你有另一種方法,我打開建議。最後,我基本上需要一個邊緣名稱的字符向量。

謝謝!

回答

0

給他們的名字得到名稱:

library(igraph) 
solid = graph_from_literal(A-D,A-C,D-F,D-C,C-B,B-E) 
E(solid)$name <- letters[seq_len(ecount(solid))] 
plot(solid, edge.label = E(solid)$name) 

enter image description here

solid.epaths = get.shortest.paths(solid, from = 1, to = 4, output = 'epath') 
solid.vpaths = get.shortest.paths(solid, from = 1, to = 4, output = 'vpath') 

names(unlist(solid.vpaths$vpath)) 
# [1] "A" "D" "F" 
names(unlist(solid.epaths$epath)) 
# [1] "a" "d" 
相關問題