我在R中使用了igraph包,我正在寻找一种方法来从上一个图中显示最大前10个最短路径。
有人有什么建议吗?
答案 0 :(得分:0)
首先创建一些图表:
set.seed(1)
require(igraph)
g <- erdos.renyi.game(100,.2)
然后提取所有最短路径并计算它们的长度:
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)
之前和之后的情节: