graph-create function

Create undirected and directed graphs

Create undirected and directed graphs

These functions are wrappers for creation of graphs as primarily igraph objects but also as adjacency matrices

ug(..., result = "igraph") ugi(...) ugList(x, result = "igraph") dag(..., result = "igraph", forceCheck = FALSE) dagi(..., forceCheck = FALSE) dagList(x, result = "igraph", forceCheck = FALSE)

Arguments

  • ...: A generating class for a graph, see examples below

  • result: The format of the graph. The possible choices are "igraph" (for an igraph

    object), "matrix" (for an adjacency matrix), "dgCMatrix" (for a sparse matrix).

  • x: A list or individual components from which a graph can be created.

  • forceCheck: Logical determining if it should be checked if the graph is acyclical. Yes, one can specify graphs with cycles using the dag() function.

Returns

Functions ug(), and dag() can return a an igraph object, a sparse or a dense adjacency matrix.

Examples

## The following specifications of undirected graphs are equivalent: uG1 <- ug(~ a:b:c + c:d) uG2 <- ug(c("a", "b", "c"), c("c", "d")) uG3 <- ug(c("a", "b"), c("a", "c"), c("b", "c"), c("c", "d")) ## The following specifications of directed acyclig graphs are equivalent: daG1 <- dag(~ a:b:c + b:c + c:d) daG2 <- dag(c("a", "b", "c"), c("b", "c"), c("c", "d")) ## dag() allows to specify directed graphs with cycles: daG4 <- dag(~ a:b + b:c + c:a) # A directed graph but with cycles ## A check for acyclicity can be done with ## daG5 <- dag(~ a:b + b:c + c:a, forceCheck=TRUE) ## A check for acyclicity is provided by topoSort topo_sort( daG2 ) topo_sort( daG4 ) ## Different representations uG7 <- ug(~a:b:c + c:d, result="igraph") # igraph uG8 <- ug(~a:b:c + c:d, result="matrix") # dense matrix uG9 <- ug(~a:b:c + c:d, result="dgCMatrix") # sparse matrix

Author(s)

Søren Højsgaard, sorenh@math.aau.dk