igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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  
> possible, while I read it with read.graph(), to convert multiple  
> 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
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/igraph-help

-- 
Csardi Gabor <address@hidden>    MTA RMKI, ELTE TTK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]