Skip to contents

The degree of a vertex is its most basic structural property, the number of its adjacent edges.

Usage

degree(
  graph,
  v = V(graph),
  mode = c("all", "out", "in", "total"),
  loops = TRUE,
  normalized = FALSE
)

max_degree(
  graph,
  ...,
  v = V(graph),
  mode = c("all", "out", "in", "total"),
  loops = TRUE
)

degree_distribution(graph, cumulative = FALSE, ...)

Arguments

graph

The graph to analyze.

v

The ids of vertices of which the degree will be calculated.

mode

Character string, “out” for out-degree, “in” for in-degree or “total” for the sum of the two. For undirected graphs this argument is ignored. “all” is a synonym of “total”.

loops

Logical; whether the loop edges are also counted.

normalized

Logical scalar, whether to normalize the degree. If TRUE then the result is divided by \(n-1\), where \(n\) is the number of vertices in the graph.

...

These dots are for future extensions and must be empty.

cumulative

Logical; whether the cumulative degree distribution is to be calculated.

Value

For degree() a numeric vector of the same length as argument v.

For degree_distribution() a numeric vector of the same length as the maximum degree plus one. The first element is the relative frequency zero degree vertices, the second vertices with degree one, etc.

For max_degree(), the largest degree in the graph. When no vertices are selected, or when the input is the null graph, zero is returned as this is the smallest possible degree.

Author

Gabor Csardi csardi.gabor@gmail.com

Examples


g <- make_ring(10)
degree(g)
#>  [1] 2 2 2 2 2 2 2 2 2 2
g2 <- sample_gnp(1000, 10 / 1000)
max_degree(g2)
#> [1] 22
degree_distribution(g2)
#>  [1] 0.001 0.000 0.002 0.005 0.026 0.038 0.058 0.101 0.118 0.117 0.118 0.113
#> [13] 0.098 0.081 0.057 0.027 0.019 0.010 0.004 0.004 0.000 0.002 0.001