R、 确定最短路径
我有一个图,需要所有节点之间的最短距离。 现在我做了下面的函数R、 确定最短路径,r,shortest-path,R,Shortest Path,我有一个图,需要所有节点之间的最短距离。 现在我做了下面的函数 shortestPath <- function(streets, length) { streets <- matrix(streets, byrow=TRUE, ncol=2) # from -> to g <- graph.data.frame(as.data.frame(streets)) # create graph, see plot(g) return &l
shortestPath <- function(streets, length)
{
streets <- matrix(streets, byrow=TRUE, ncol=2) # from -> to
g <- graph.data.frame(as.data.frame(streets)) # create graph, see plot(g)
return <- shortest.paths(g, weights = length) # return routes lengths
}
我们清楚地看到,节点6和节点8之间的最短路径的长度为2,但是,此函数返回的长度为4。怎么了?我已经修补了两天了。期待您的帮助 您可能需要查看
最短路径(边、长度)
的行名和列名。这真的很有启发性
res <- shortestPath(edges,length)
res[order(as.integer(rownames(res))),
order(as.integer(colnames(res)))]
res您可能需要查看最短路径(边、长度)
的行名和列名。这真的很有启发性
res <- shortestPath(edges,length)
res[order(as.integer(rownames(res))),
order(as.integer(colnames(res)))]
res我认为问题在于您的函数有一个名为streets
的参数,而根据函数体,该参数应命名为edges
。将来,请把你的例子复制出来,这样我们就可以真正地回答这个问题,而不是猜测。我发现我的问题确实打错了。我会给出一个小时内可以复制的数据。那么你还有问题吗?如果是,请提供街道
和长度
输入,使您的示例重现。另外,请注意length
也是函数名,因此变量的名称选择非常糟糕。是的,我仍然有一个问题。这个输入错误只出现在这里的函数中,而不在我的R文档中。你可以找到数据,这样你就可以复制它。此外,我将更改变量名length
。感谢您提前抽出时间。我认为问题在于您的函数有一个名为streets
的参数,而根据函数体,该参数应命名为Edge
。将来,请把你的例子复制出来,这样我们就可以真正地回答这个问题,而不是猜测。我发现我的问题确实打错了。我会给出一个小时内可以复制的数据。那么你还有问题吗?如果是,请提供街道
和长度
输入,使您的示例重现。另外,请注意length
也是函数名,因此变量的名称选择非常糟糕。是的,我仍然有一个问题。这个输入错误只出现在这里的函数中,而不在我的R文档中。你可以找到数据,这样你就可以复制它。此外,我将更改变量名length
。提前感谢您的时间。+1-我进行了编辑,因此解决方案可以处理具有10个或更多顶点的图形。+1-我进行了编辑,因此解决方案可以处理具有10个或更多顶点的图形。