Ich habe eine Grafik g
, die eine Reihe von Knoten/Scheitelpunkte enthält, die durch Kanten verbunden sind, jede der Kanten hat einen bestimmten numerischen Attributwert. Eine Kante Liste könnte wie folgt aussehen:Mit IGraph in R, wie berechnet man den höchsten/niedrigsten Kantenattributwert von denen, die mit jedem Eckpunkt verbunden sind?
v1 v2 att
a b 17
a c 6
a d 2
b c 9
Für die Visualisierung ich die höchsten und niedrigsten att
Zahlen zu jedem Eckpunkt verbunden hinzufügen muß (kommen oder gehen, Richtung spielt hier keine Rolle).
So zum Beispiel würde Ich mag v$max
für eine bis auf 17 und v$min
für ein bis 2, weil der größte att-Wert einer Verbindung zu einem 17 verbunden ist, und der kleinste ist 2.
ich habe versucht, einige Varianten entlang des Thema dieser:
V(g)$min=min(E(g)[incident(g,V(g), mode='total')]$att)
Dies scheint in fast Recht sehr zu sein, dass es scheint, die richtige Antwort zu geben, wenn ich es auf einem einzelnen Knoten versuchen, wie in
min(E(g)[incident(g,V(g)[2], mode='total')]$att)
aber es funktioniert nicht, wenn ich es über alle Knoten versuche. Ziel ist es, für jeden Knoten V(g)$min
und V(g)$max
zu setzen.
Dank! Es ist kein Hausaufgabenproblem, nein, sondern vollständig selbstgewachsen (zeitliche Graphen). Ich bin ein Ingenieur, der ungefähr so gebildet ist, wie ich es wahrscheinlich immer sein werde (obwohl er nicht so gebildet ist, wie ich es sein sollte, offensichtlich: namentlich lapply/ldply sind derzeit nicht mein Freund). Ich habe die Antwort akzeptiert: Nochmals vielen Dank! Übrigens, jede Idee, warum der ursprüngliche Ansatz nicht funktioniert? Ich finde es ein wenig verwirrend - kann den Fehler nicht sehen :) – socstuff
Es kann funktionieren. Es fehlt nur die Verallgemeinerung. Sie können versuchen, sapply (1: Länge (V (g)), Funktion (n) min (E (g) [Vorfall (g, V (g) [n], Modus = 'total')] $ att)) – chinsoon12