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
_______________________________________________
igraph-help mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/igraph-help