Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R、 确定最短路径_R_Shortest Path - Fatal编程技术网

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个或更多顶点的图形。