2012-06-04 5 views
5

Ich habe eine wirklich große Kantenliste, und ich möchte nur die Kanten zeichnen, die ein bestimmtes Gewicht haben, wie kann ich das tun?Plot only Kanten mit einem bestimmten Gewicht - ifap

Ich habe bisher versucht

plot.graph(E(sgdf)[E(sgdf)$weight==3])) 

aber ich habe immer diesen Fehler

Error in V(g) : Not a graph object 
+1

Meinst du das 'igraph' Paket? Meinst du "plot.graph"? Können Sie ein minimal reproduzierbares Beispiel liefern? –

+0

Das iGraph-Paket. – Jose187

+0

Hmm. Es gibt kein Paket mit diesem Namen auf CRAN (http://cran.r-project.org/web/packages/available_packages_by_name.html#available-packages-I). Von wo hast du es heruntergeladen? –

Antwort

11

Ihr Diagramm ersten Kopieren, entfernen Sie die Kanten, die Sie nicht brauchen, und den Rest des Grundstückes:

> sgdf.copy <- delete.edges(sgdf, which(E(sgdf)$weight != 3)-1) 
> plot(sgdf.copy) 

Die -1 wird in delete.edges benötigt, da z IGRAPH verwendet ero-basierte Kantenindizes, während R 1-basierte Indizes verwendet.

Update: als ein anonymer Editor (dessen Bearbeitung wurde leider abgelehnt) wies darauf hin, verwendet Sigra 1-Base-Kantenindizes ab. Deshalb subtrahieren Sie 1 nur, wenn Sie igraph 0.5.x oder früher verwenden.

Verwandte Themen