2012-10-13 7 views
9

Ich habe die folgende TXT-Datei, die ein Netzwerk im Edgelistenformat darstellt.Import gewichtete Kantenliste mit Hilfe von igrap

Die ersten beiden Spalten stellen die übliche: welcher Knoten an die anderen Knoten

verbunden ist

Die dritte Spalte repräsentiert Gewichte, die die Anzahl von Malen jeder Knoten die anderen in Kontakt gebracht wurde.

Ich habe die igraph Dokumentation gesucht, aber es gibt keine Erwähnung, wie ein Argument für Gewicht beim Importieren von Standard-Dateiformate wie TXT enthalten. als Gewicht

read.graph("Irvine/OClinks_w.txt", format="edgelist") 

Dieser Code behandelt die dritte Spalte als etwas anderes:

Die Datei kann von here und das ist der Code, den ich habe mit zugegriffen werden.

Kennt jemand die Lösung?

Antwort

9

verursacht das folgende zu viel Ärger?

g <- read.table("Irvine/OClinks_w.txt") 
g <- graph.data.frame(g) 

wenn es sich dann direkt aus der Datei, die Sie

g<-read.graph("Irvine/OClinks_w.txt",format="ncol") 
E(g)$weight 
+1

beides für mich gearbeitet. Sollte akzeptiert werden ... – pocketfullofcheese

1

verwenden können, wenn Sie Python und IGRAPH verwenden, wird die folgende Codezeile funktioniert Gewichte und Vertex-Namen zu importieren:

g1w=Graph.Read_Ncol("g1_ncol_format_weighted.txt",names=True) 

Hinweis: Sie müssen igraph anweisen, das Namensattribut mit names=True zu lesen, andernfalls werden nur Eckpunktnummern importiert.

Wo g1_ncol_format_weighted.txt etwas wie folgt aussieht:

A B 2 
B C 3 

Um sicherzustellen, dass der Import ordnungsgemäß funktioniert, verwenden Sie die folgenden Zeilen:

print(g1w.get_edgelist()) 
print(g1w.es["weight"]) 
print(g1w.vs["name"]) 
+0

Das ist Python und das Plakat wurde mit R. –

+0

Danke für die Klarstellung! – user217558

+0

Sehr hilfreich, da ich Python wollte. Vielen Dank – nealmcb