2012-10-13 15 views
9

Mam następujący plik txt reprezentujący sieć w formacie edgelist.Importuj ważony edgelist za pomocą igraph

Pierwsze dwie kolumny reprezentują zwykle: który węzeł jest połączony z których inne węzły

trzecia kolumna wagi, co oznacza, ile razy każdy węzeł skontaktowano z drugiej strony.

Przeszukałem dokumentację igraph, ale nie ma wzmianki o tym, jak dołączyć argument dotyczący wagi podczas importowania standardowych formatów plików, takich jak txt.

Plik można uzyskać z here i jest to kod używam:

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

Kod ten traktuje trzecią kolumnę jako coś innego niż wagi.

Czy ktoś zna rozwiązanie?

Odpowiedz

9

Czy następujące przyczyny powodują zbyt duży kłopot?

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

jeśli nie wtedy bezpośrednio z pliku można użyć

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

oba te pracował dla mnie. Powinny zostać zaakceptowane ... – pocketfullofcheese

1

Jeśli używasz Python i igraph następujący wiersz kodu działa importować ciężary i nazwy wierzchołków:

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

Uwaga: musisz powiedzieć igraph, aby odczytał atrybuty nazwy z names=True, w przeciwnym razie tylko numery wierzchołków zostaną zaimportowane.

Gdzie g1_ncol_format_weighted.txt wyglądał:

A B 2 
B C 3 

Aby upewnić się, że import działało poprawnie, należy wykonać następujące linie:

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

To jest Python, a plakat używał R. –

+0

Dziękuję za wyjaśnienia! – user217558

+0

Bardzo pomocny, ponieważ chciałem pytona. Dzięki – nealmcb

Powiązane problemy