
Last chance! 50% off unlimited learning
Sale ends in
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
)
The input graph. It may be directed.
The vertices for which the calculation is performed. Normally it
includes all vertices. Note, that if not all vertices are given here, then
both ‘knn
’ and ‘knnk
’ will be calculated based
on the given vertices only.
Character constant to indicate the type of neighbors to consider
in directed graphs. out
considers out-neighbors, in
considers
in-neighbors and all
ignores edge directions.
The type of degree to average in directed graphs.
out
averages out-degrees, in
averages in-degrees and all
ignores edge directions for the degree calculation.
Weight vector. If the graph has a weight
edge
attribute, then this is used by default. If this argument is given, then
vertex strength (see strength
) is used instead of vertex
degree. But note that knnk
is still given in the function of the
normal vertex degree.
Weights are are used to calculate a weighted degree (also called
strength
) instead of the degree.
A list with two members:
A numeric vector giving the
average nearest neighbor degree for all vertices in vids
.
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.
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
.
Alain Barrat, Marc Barthelemy, Romualdo Pastor-Satorras, Alessandro Vespignani: The architecture of complex weighted networks, Proc. Natl. Acad. Sci. USA 101, 3747 (2004)
# NOT RUN {
# 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)
# }
Run the code above in your browser using DataLab