2012-03-30 2 views
0

У меня есть проблема с расстояниями между двумя узлами моего графика в R. Я построить график, как здесь:R: получить расстояние между узлами с sp.between

library(graph) 
library(RBGL) 

names <- c("a", "b", "c") 
g <- new("graphNEL") 
g <- addNode(names[1],g) 
g <- addNode(names[2],g) 
g <- addNode(names[3],g) 
g <- addEdge(from=names[1],to=names[2],g) 
g <- addEdge(from=names[2],to=names[3],g) 
dist <- sp.between(g,names[1],names[3]) 

dist 

# OUTPUT 
$`a:c` 
$`a:c`$length 
[1] 2 

$`a:c`$path_detail 
[1] "a" "b" "c" 

$`a:c`$length_detail 
$`a:c`$length_detail[[1]] 
a--b b--c 
    1 1 

Нет Я может получить длину с:

dist$`a:c`$length 
    [1] 2 

Но как я могу получить длину без typin в $ `: с c` $ длины я просто только хочу использовать переменные, как для использования цикла для вычисления расстояния ..

dist$names[1]:names[3]$length 

ответ

0

Поскольку результатом является список всех кратчайших путей между двумя узлами, , вы можете взять первый с [[1]] и извлечь его длину.

dist[[1]]$length 
+0

Благодарим за ответ :) – CoolKiffings

Смежные вопросы