The density of a graph is the ratio of the actual number of edges and the largest possible number of edges in the graph, assuming that no multi-edges are present.
Details
The concept of density is ill-defined for multigraphs. Note that this function does not check whether the graph has multi-edges and will return meaningless results for such graphs.
References
Wasserman, S., and Faust, K. (1994). Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.
See also
vcount(), ecount(), simplify()
to get rid of the multiple and/or loop edges.
Other structural.properties:
bfs(),
component_distribution(),
connect(),
constraint(),
coreness(),
degree(),
dfs(),
distance_table(),
feedback_arc_set(),
feedback_vertex_set(),
girth(),
is_acyclic(),
is_dag(),
is_matching(),
k_shortest_paths(),
knn(),
reciprocity(),
subcomponent(),
subgraph(),
topo_sort(),
transitivity(),
unfold_tree(),
which_multiple(),
which_mutual()
Author
Gabor Csardi csardi.gabor@gmail.com
Examples
edge_density(make_empty_graph(n = 10)) # empty graphs have density 0
#> [1] 0
edge_density(make_full_graph(n = 10)) # complete graphs have density 1
#> [1] 1
edge_density(sample_gnp(n = 100, p = 0.4)) # density will be close to p
#> [1] 0.3935354
# loop edges
g <- make_graph(c(1, 2, 2, 2, 2, 3)) # graph with a self-loop
edge_density(g, loops = FALSE) # this is wrong!!!
#> [1] 0.5
edge_density(g, loops = TRUE) # this is right!!!
#> [1] 0.3333333
edge_density(simplify(g), loops = FALSE) # this is also right, but different
#> [1] 0.3333333
