Use this if you are using igraph from R
Calculates a measure of diversity for all vertices.
diversity(graph, weights = NULL, vids = V(graph))
graph |
The input graph. Edge directions are ignored. |
weights |
|
vids |
The vertex ids for which to calculate the measure. |
The diversity of a vertex is defined as the (scaled) Shannon entropy of the weights of its incident edges:
D(i)=H(i)/log(k[i])
and
H(i) = -sum(p[i,j] log(p[i,j]), j=1..k[i]),
where
p[i,j] = w[i,j] / sum(w[i,l], l=1..k[i]),
and k[i] is the (total) degree of vertex i, w[i,j] is the weight of the edge(s) between vertices i and j.
For vertices with degree less than two the function returns NaN
.
A numeric vector, its length is the number of vertices.
Gabor Csardi csardi.gabor@gmail.com
Nathan Eagle, Michael Macy and Rob Claxton: Network Diversity and Economic Development, Science 328, 1029–1031, 2010.
g1 <- sample_gnp(20, 2/20) g2 <- sample_gnp(20, 2/20) g3 <- sample_gnp(20, 5/20) E(g1)$weight <- 1 E(g2)$weight <- runif(ecount(g2)) E(g3)$weight <- runif(ecount(g3)) diversity(g1) diversity(g2) diversity(g3)