[英]Find total of second variable related to the distance of route from get.shortest.paths()
我发现以下问题( 找到距get.shortest.paths()的路线的距离 )非常有帮助,但希望将其更进一步。 我在数据框中添加了一列,我想获得与最小newcost路径有关的“总距离”。
在我使用的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]]]
我想回答的问题是与这条最短路径有关的距离是多少。 最短路径的答案是34.5,并且(手动计算)与该路径有关的距离是208。
赞赏一些有关如何自动获得此距离的提示。
谢谢! 约赫姆
# What is the distance related to the min newcost?
这为您提供了最佳路径的边缘:
optimal.path <- V(g2)[tmp2[[1]]]
E(g2, path = optimal.path)
# Edge sequence:
#
# [1] 326 -- 234
# [3] 241 -- 326
# [4] 245 -- 241
(请注意,它们并不是沿着您的最佳路径的顺序出现,而是出现在图形g2
的定义中)。
这将为您提供总距离:
sum(E(g2, path = optimal.path)$distance)
# [1] 208
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.