igraph-help
[Top][All Lists]
Advanced

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

Re: [igraph] beginner's question


From: Gábor Csárdi
Subject: Re: [igraph] beginner's question
Date: Sun, 20 Dec 2009 16:23:51 +0100

Dear Prof Freeman,

On Sun, Dec 20, 2009 at 3:21 PM, Lin Freeman <address@hidden> wrote:
> Hi,
>
> I have a beginner's question.  I'm running various community-finders an a
> data set.  I've had success
> with spinglass and walktrap, but I can't get fastgreedy to run.  See below:
>
>
>> D <- read.table("Ds.dat")
>> B <-D[,1:2]-1
>> library(igraph)
>> g <- graph(t(as.matrix(B)), directed=FALSE
> + )
>> E(g)$weight <- D[,3]
>> fastgreedy.community(g, merges=TRUE, modular=TRUE, weights=E(g)$weight)
> Error in fastgreedy.community(g, merges = TRUE, modular = TRUE, weights =
> E(g)$weight) :
>   At fast_community.c:536 : fast-greedy community finding works only on
> simple graphs, Invalid value

the problem is not only self-loops, but multiple edges. If you create
your graph like this, and you have an edge A-B both in the form of A B
and in the form of B A in the file, then igraph creates two edges and
you end up with a multigraph. This is easy to check:

 is.simple(g)
[1] FALSE
sum(is.multiple(g))
[1] 139

The solution is to call simplify() on the graph:

library(igraph)
g <- graph.data.frame(read.table("/tmp/txt"), dir=FALSE)
g <- simplify(g)
fastgreedy.community(g)

Best Regards,
Gabor

-- 
Gabor Csardi <address@hidden>     UNIL DGM




reply via email to

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