2016-05-03 17 views
1

Ich habe einen Datenrahmen mit den entsprechenden Gewichten in einem Diagrammfinden Entfernung entlang eines Pfades IGRAPH r

set.seed(123) 
df = data.frame(a=LETTERS[1:5],b=LETTERS[3:7],w=rnorm(5)) 
g <- graph_from_data_frame(df) 

Ich mag würde den Abstand/Summe der Gewichte wissen, von einem bestimmten Weg, den ich will. gibt es eine Funktion wie folgt aus:

path.length('H','L','N') 

ich den kürzesten Weg zwischen zwei Punkten finden kann, aber nicht für meine spezifischen Weg. Gibt es eine Funktion, die das berechnet?

Beachten Sie, dass meine realen Daten 600 Knoten und 900 Kanten, und mein Knoten Pfad ~ 90 Knoten/Kanten lange

+0

Nicht verfügbar so weit ich weiß. Aber ich denke, wenn ich nicht falsch verstanden habe, dass Sie zuerst den Abstand zwischen "H" und "L" berechnen können, und dann den Abstand zwischen "L" und "N" addieren? – lrnzcig

Antwort

1

sum(E(g, path=c("H", "L", "N"))$w) sollte es tun. E(g, path=something) wählt die Kanten entlang des durch die Scheitelpunktnamen angegebenen Pfads aus, $w ruft die Gewichtungen dieser Kanten ab (genauer gesagt das Kantenattribut mit dem Namen w für alle ausgewählten Kanten), und sum übernimmt dann die Summe.

Verwandte Themen