首先,我有一个用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。
答案 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]]]