Use this if you are using igraph from R
This function tries to find densely connected subgraphs in a graph by calculating the leading nonnegative eigenvector of the modularity matrix of the graph.
cluster_leading_eigen(graph, steps = 1, weights = NULL, start = NULL, options = arpack_defaults, callback = NULL, extra = NULL, env = parent.frame())
graph 
The input graph. Should be undirected as the method needs a symmetric matrix. 
steps 
The number of steps to take, this is actually the number of tries to make a step. It is not a particularly useful parameter. #' 
weights 
An optional weight vector. The ‘weight’ edge attribute
is used if present. Supply ‘ 
start 

options 
A named list to override some ARPACK options. 
callback 
If not 
extra 
Additional argument to supply to the callback function. 
env 
The environment in which the callback function is evaluated. 
The function documented in these section implements the ‘leading eigenvector’ method developed by Mark Newman, see the reference below.
The heart of the method is the definition of the modularity matrix,
B
, which is B=AP
, A
being the adjacency matrix of the
(undirected) network, and P
contains the probability that certain
edges are present according to the ‘configuration model’. In other
words, a P[i,j]
element of P
is the probability that there is
an edge between vertices i
and j
in a random network in which
the degrees of all vertices are the same as in the input graph.
The leading eigenvector method works by calculating the eigenvector of the modularity matrix for the largest positive eigenvalue and then separating vertices into two community based on the sign of the corresponding element in the eigenvector. If all elements in the eigenvector are of the same sign that means that the network has no underlying comuunity structure. Check Newman's paper to understand why this is a good method for detecting community structure.
cluster_leading_eigen
returns a named list with the
following members:
membership 
The membership vector at the end of the algorithm, when no more splits are possible. 
merges 
The merges
matrix starting from the state described by the 
options 
Information about the underlying ARPACK computation, see

The callback
argument can be used to
supply a function that is called after each eigenvector calculation. The
following arguments are supplied to this function:
The actual membership vector, with zerobased indexing.
The community that the algorithm just tried to split, community numbering starts with zero here.
The eigenvalue belonging to the leading eigenvector the algorithm just found.
The leading eigenvector the algorithm just found.
An R function that can be used to multiple the actual modularity matrix with an arbitrary vector. Supply the vector as an argument to perform this multiplication. This function can be used with ARPACK.
The extra
argument that was passed to
cluster_leading_eigen
.
The callback function should return a scalar number. If this number is nonzero, then the clustering is terminated.
Gabor Csardi csardi.gabor@gmail.com
MEJ Newman: Finding community structure using the eigenvectors of matrices, Physical Review E 74 036104, 2006.
modularity
, cluster_walktrap
,
cluster_edge_betweenness
,
cluster_fast_greedy
, as.dendrogram
g < make_full_graph(5) %du% make_full_graph(5) %du% make_full_graph(5) g < add_edges(g, c(1,6, 1,11, 6, 11)) lec < cluster_leading_eigen(g) lec cluster_leading_eigen(g, start=membership(lec))