在igraph的shortest.path函数中检索整数名称

时间:2014-04-08 11:11:52

标签: igraph

首先,我有一个用igraph(最短路径)生成的最短路径矩阵 当我想用“get.shortest.path”检索节点名时,它只是给我带来每列的编号而不是它的名字:

       [,a] [,b] [,c] [,d] [,e] [,f] [,g] [,h] [,i] [,j]
 [a,]    0    1    2    3    4    5    4    3    2     1
 [b,]    1    0    1    2    3    4    5    4    3     2
 [c,]    2    1    0    1    2    3    4    5    4     3
 [d,]    3    2    1    0    1    2    3    4    5     4
 [e,]    4    3    2    1    0    1    2    3    4     5
 [f,]    5    4    3    2    1    0    1    2    3     4
 [g,]    4    5    4    3    2    1    0    1    2     3
 [h,]    3    4    5    4    3    2    1    0    1     2
 [i,]    2    3    4    5    4    3    2    1    0     1
 [j,]    1    2    3    4    5    4    3    2    1     0 

然后:

get.shortest.paths(g, 5, 1)    

答案是:

[[1]]
[1] 5 4 3 2    

我希望节点名称不是它们的数字。有什么解决方案吗?我也检查了vpath。

2 个答案:

答案 0 :(得分:2)

这对我有用:

paths <- get.shortest.paths(g, 5, 1)$vpath
names <- V(g)$name
lapply(paths, function(x) { names[x] })

答案 1 :(得分:1)

有一个稍微简单的解决方案,不使用lapply:

paths <- get.shortest.paths(g, 5, 1)
V(g)$name[p$vpath[[1]]]