igraph-help
[Top][All Lists]

## Re: [igraph] weighted graph

 From: Csardi Gabor Subject: Re: [igraph] weighted graph Date: Wed, 29 Aug 2007 20:12:45 +0200 User-agent: Mutt/1.5.9i

```Simone,

it seems to be easy to determine the multiplicity of the edges in
an edge list, but all i can think of is converting the edge list
to a character vector by making "i j" from an i j edge. You need to
be sure that i<=j for every edge. This is always true if the edgelist
is created by get.edgelist. So it is something like:

> g <- graph( c(0,1,0,1,0,1,0,2,0,2), dir=FALSE)
> el <- get.edgelist(g)
> el <- apply(el, 1, function(x) paste(x, collapse=" "))
> el <- table(el)
> el2 <- as.numeric(unlist(strsplit(names(el), " ")))
> el3 <- unname(el)
> g2 <- graph(el2, dir=is.directed(g))
> E(g2)\$weight <- el3
> print(g2, e=T)
Vertices: 3
Edges: 2
Directed: FALSE
Edges and their attributes:
weight
[0] 0 -- 1      3
[1] 0 -- 2      2

Actually there is a count.multiple function in the development branch
of igraph, that could make things much easier.

Hope this helps,
Gabor

On Wed, Aug 29, 2007 at 04:45:02PM +0200, Simone Gabbriellini wrote:
> dear list,
>
> I have an igraph object with multiple edges.
> I would like to simplify it, using simplify(), but I don't like to
> loose all that information;
> I have all my data in edgelist format, so I am wondering if it's
> edges into one weighted edge.
>
> I'm thinking about something like:
>
> 1 2
> 1 2
> 1 3
> 1 5
>
> into
>
> 1 2 weight=2
> 1 3
> 1 5
>
> thank you,
> Simone
>
>
> _______________________________________________
> igraph-help mailing list