使用igraph/R获得前10条最短路径

使用igraph/R获得前10条最短路径,r,igraph,shortest-path,R,Igraph,Shortest Path,我在R中使用igraph包,我正在寻找一种方法,从上一个图中细分最大前10条最短路径 有人有什么建议吗 首先创建一些图形: set.seed(1) require(igraph) g <- erdos.renyi.game(100,.2) set.seed(1) 需要(igraph) g欢迎来到SO!你有需要帮助的代码吗?没有,对不起。我只是将最短路径设置为属性E(g)$ShP,并使用E(g)$ShP[order(E(g)$ShP)]对其进行排序,但我不知道如何获得前10条。提取前10条

我在R中使用igraph包,我正在寻找一种方法,从上一个图中细分最大前10条最短路径


有人有什么建议吗

首先创建一些图形:

set.seed(1)
require(igraph)
g <- erdos.renyi.game(100,.2)
set.seed(1)
需要(igraph)

g欢迎来到SO!你有需要帮助的代码吗?没有,对不起。我只是将最短路径设置为属性E(g)$ShP,并使用
E(g)$ShP[order(E(g)$ShP)]
对其进行排序,但我不知道如何获得前10条。提取前10条最短路径是什么意思?你想要10个新的图,在10条最短路径上只有节点和边?有点。我只希望在末尾有一个图,显示10条最短路径上节点和边的并集。你认为这是可能的吗?事实上,我不知道是否有一个函数可以给出IGRAPHE中两个顶点之间的所有路径(按长度排列)。。。我认为只有返回最短路径的函数(即使是所有函数,但前提是它们的最小长度相同)
plist <- do.call(c,
            lapply(V(g), function(v) get.shortest.paths(g,v,V(g), output='epath')$epath))
psize <- data.frame(i = 1:length(plist), plength = sapply(plist,length))

top10 <- head(psize[order(-psize$plength),],10)
elist <- unlist(plist[top10$i])
finalg <- subgraph.edges(g, elist)