測地線
測地線の数と長さを求めるにはgeodist関数を使う。
例.
> dat <- matrix(c(
+ 0,1,1,0,
+ 0,0,0,1,
+ 0,0,0,1,
+ 0,0,0,0),
+ 4, byrow = T)
> geodist(dat)
$counts
[,1] [,2] [,3] [,4]
[1,] 1 1 1 2
[2,] 0 1 0 1
[3,] 0 0 1 1
[4,] 0 0 0 1
$gdist
[,1] [,2] [,3] [,4]
[1,] 0 1 1 2
[2,] Inf 0 Inf 1
[3,] Inf Inf 0 1
[4,] Inf Inf Inf 0
$countsで測地線(最短経路)の数が、$gdistで測地線距離(最短距離)が行列の形で得られる。
注意
geodistに入力するネットワークのデータは二値、すなわち各辺の重みは0か1であることを想定している。
追記:重みがついていても全て同じ値であれば、正しい距離が算出される。ステップ数(たどる辺の数)が最も小さい経路を測地線とするため、ステップ数は大きいが、その重みの合計は小さいような経路があると、正しい距離が算出されない。
その他のパラメータ
inf.replace
結合していないノード間の距離に使用する値を指定する。デフォルトはInf(無限大)。
例.
> dat <- matrix(c(
+ 0,1,1,0,
+ 0,0,0,1,
+ 0,0,0,1,
+ 0,0,0,0),
+ 4, byrow = T)
> geodist(dat)
$counts
[,1] [,2] [,3] [,4]
[1,] 1 1 1 2
[2,] 0 1 0 1
[3,] 0 0 1 1
[4,] 0 0 0 1
$gdist
[,1] [,2] [,3] [,4]
[1,] 0 1 1 2
[2,] Inf 0 Inf 1
[3,] Inf Inf 0 1
[4,] Inf Inf Inf 0
$countsで測地線(最短経路)の数が、$gdistで測地線距離(最短距離)が行列の形で得られる。
注意
geodistに入力するネットワークのデータは二値、すなわち各辺の重みは0か1であることを想定している。
追記:重みがついていても全て同じ値であれば、正しい距離が算出される。ステップ数(たどる辺の数)が最も小さい経路を測地線とするため、ステップ数は大きいが、その重みの合計は小さいような経路があると、正しい距離が算出されない。
その他のパラメータ
inf.replace
結合していないノード間の距離に使用する値を指定する。デフォルトはInf(無限大)。