Use this if you are using igraph from R
Calculate the average nearest neighbor degree of the given vertices and the same quantity in the function of vertex degree
knn(
  graph,
  vids = V(graph),
  mode = c("all", "out", "in", "total"),
  neighbor.degree.mode = c("all", "out", "in", "total"),
  weights = NULL
)
| graph | The input graph. It may be directed. | 
| vids | The vertices for which the calculation is performed. Normally it
includes all vertices. Note, that if not all vertices are given here, then
both ‘ | 
| mode | Character constant to indicate the type of neighbors to consider
in directed graphs.  | 
| neighbor.degree.mode | The type of degree to average in directed graphs.
 | 
| weights | Weight vector. If the graph has a  | 
Note that for zero degree vertices the answer in ‘knn’ is
NaN (zero divided by zero), the same is true for ‘knnk’
if a given degree never appears in the network.
The weighted version computes a weighted average of the neighbor degrees as
k_nn_u = 1/s_u sum_v w_uv k_v,
where s_u = sum_v w_uv is the sum of the incident edge weights
of vertex u, i.e. its strength.
The sum runs over the neighbors v of vertex u
as indicated by mode. w_uv denotes the weighted adjacency matrix
and k_v is the neighbors' degree, specified by neighbor_degree_mode.
A list with two members:
| knn | A numeric vector giving the
average nearest neighbor degree for all vertices in  | 
| knnk | A numeric vector, its length is the maximum (total) vertex degree in the graph. The first element is the average nearest neighbor degree of vertices with degree one, etc. | 
Gabor Csardi csardi.gabor@gmail.com
Alain Barrat, Marc Barthelemy, Romualdo Pastor-Satorras, Alessandro Vespignani: The architecture of complex weighted networks, Proc. Natl. Acad. Sci. USA 101, 3747 (2004)
# Some trivial ones g <- make_ring(10) knn(g) g2 <- make_star(10) knn(g2) # A scale-free one, try to plot 'knnk' g3 <- sample_pa(1000, m=5) knn(g3) # A random graph g4 <- sample_gnp(1000, p=5/1000) knn(g4) # A weighted graph g5 <- make_star(10) E(g5)$weight <- seq(ecount(g5)) knn(g5)