简体   繁体   English

从get.shortest.paths()查找与路线距离有关的第二个变量的总数

[英]Find total of second variable related to the distance of route from get.shortest.paths()

I found the following question ( Find distance of route from get.shortest.paths() ) very helpful, but would like to take it one step further. 我发现以下问题( 找到距get.shortest.paths()的路线的距离 )非常有帮助,但希望将其更进一步。 I have added one column to the data frame and I would like to get the "total distance" related to the min newcost path. 我在数据框中添加了一列,我想获得与最小newcost路径有关的“总距离”。

Below the igraph / R code that I used. 在我使用的igraph / R代码下面。

df2 = rbind(c(234,235,21.6,75),
c(234,326,11.0,35),
c(235,241,14.5,78),
c(326,241,8.2,98),
c(241,245,15.3,75),
c(234,245,38.46,65))

df2 = as.data.frame(df2)
names(df2) = c("start_id","end_id","newcost","distance")

df2

require(igraph)
g2 <- graph.data.frame(df2, directed=FALSE)

tkplot(g2)

(tmp2 = get.shortest.paths(g2, from='234', to='245',weights=E(g2)$newcost))

# This gives the shortest path based on $newcost
V(g2)[tmp2[[1]]]

The question that I would like to have answered is what is the distance related to this shortest path. 我想回答的问题是与这条最短路径有关的距离是多少。 The answer of the shortest path is 34.5 and (computed manually) the distance related to this path is 208. 最短路径的答案是34.5,并且(手动计算)与该路径有关的距离是208。

Appreciate some hints on how to get this distance automatically. 赞赏一些有关如何自动获得此距离的提示。

Thanks! 谢谢! Jochem 约赫姆

# What is the distance related to the min newcost?

This gives you the edges along your optimal path: 这为您提供了最佳路径的边缘:

optimal.path <- V(g2)[tmp2[[1]]] 
E(g2, path = optimal.path)
# Edge sequence:
#               
# [1] 326 -- 234
# [3] 241 -- 326
# [4] 245 -- 241

(note that they do not appear in the order along your optimal path, but as they appear in the definition of your graph g2 .) (请注意,它们并不是沿着您的最佳路径的顺序出现,而是出现在图形g2的定义中)。

and this gives you the total distance: 这将为您提供总距离:

sum(E(g2, path = optimal.path)$distance)
# [1] 208

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM