[Top][All Lists]
[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