Great! Thanks Tamas!


> Message: 1
> Date: Mon, 15 Dec 2014 21:39:39 +0100
> From: Tamas Nepusz <[email protected]>
> To: Help for igraph users <[email protected]>
> Subject: Re: [igraph] Import with edge attributes in python
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=us-ascii
>
> Hi,
>
> > I'm trying to import a (large) graph from an edgelist (vertices in
> columns
> > 1 and 2, and weights in the third and fourth columns). Since I have two
> > sets of weights (different modes of communication), I'm not sure how to
> > import them -- read.graph() with format = 'ncol' only seems to accept one
> > column of weights, and format = 'edgelist' doesn't seem to tolerate edge
> > attributes of any sort. Is there a way to (bulk) load more attributes? Or
> > do I need to loop over all the edges and add them manually one at a time?
> The easiest is probably to iterate over the lines of the file and construct
> a tuple of length 4 from each of them. You can then pass these tuples to
> the
> Graph.TupleList() constructor. Something like:
>
> def tuples(input_file):
>     for line in open(input_file):
>             u, v, weight1, weight2 = line.split()
>                 weight1 = float(weight1)
>                 weight2 = float(weight2)
>                 yield u, v, weight1, weight2
>
> g = Graph.TupleList(tuples, edge_attrs=("weight1", "weight2"))
>
> This should yield a graph where the "name" vertex attribute stores the
> vertex
> names (the first and second columns of the input) and the "weight1" and
> "weight2" edge attributes store the weights.
>
> T.
>
>
>
>
_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help

Reply via email to