...
g <- graph.data.frame(ga.data, directed=FALSE)
gnc <- edge.betweenness.community(g, directed=FALSE)
m <- vector()
for (s in 0:nrow(gnc$merges) ) {
memb <- community.to.membership(g,gnc$merge,steps=s)$membership
m <- c(m,modularity (g, memb, weights=NULL))
}
ideal <- steps <- which(m==max(m)) - 1
gn.groups <- community.to.membership(g,gnc$merge, steps=ideal <- steps)$membership
V(g)$color <- gn.groups
V(g)$label <- V(g)$name # this is to show the friends' name on the plot
#V(g)$label <- NA
V(g)$size <- 3
png('friendscluster.png')
plot(g)
dev.off()