|
From: | Fatemeh a |
Subject: | Re: [igraph] calculating the number of edges on the boundary of S |
Date: | Thu, 27 Nov 2014 20:33:26 +0330 |
Hi,1. assign an edge weight of 1 to each edge2. Use contract.vertices with the membership vector of your community structure to contract each community to a single vertex. Then simplify the graph and tell igraph to sum the edge weights when it merges multiple edges into a single one during simplification.3. The edge weights in the contracted graph will tell you rhe number of edges between the communities in the original graph.
T.Hi,I would appreciate if some one could help me to speed up this piece of code :what I am trying to do is to calculate the number of edges on the boundary of community S but it is really slow.numberofedge<-function(graph,community){cs <- data.frame(combn(unique(membership(community)),2)) #----considering a combination of communities two by twocx <- sapply(cs, function(x) { #calculating edges in between two communitieses<-E(graph)[V(graph)[membership(community)==x[1]] %--%V(graph)[membership(community)==x[2]]]length(es)})y=cbind(t(cs),cx)i=1CS=array( data="" = length(unique(membership(community))))while (i<length(y[,1])+1){ # calculating the edges on the boundary for each communityCS[y[i,1]]=CS[y[i,1]]+y[i,3]CS[y[i,2]]=CS[y[i,2]]+y[i,3]i=i+1}--regardsF..A_______________________________________________
igraph-help mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/igraph-help
_______________________________________________
igraph-help mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/igraph-help
[Prev in Thread] | Current Thread | [Next in Thread] |