graph (version 1.50.0)

graph2SparseM: Coercion methods between graphs and sparse matrices

Description

These functions provide coercions between objects that inherit from the graph class to sparse matrices from the SparseM package.

Usage

graph2SparseM(g, useweights=FALSE) sparseM2Graph(sM, nodeNames, edgemode=c("directed", "undirected"))

Arguments

g
An instance of the graph class.
useweights
A logical value indicating whether to use the edge weights in the graph as values in the sparse matrix.
sM
A sparse matrix.
nodeNames
A character vector of the node names.
edgemode
Specifies whether the graph to be created should have directed (default) or undirected edges. If undirected, the input matrix sM must be symmetric.

Value

graph2SparseM takes as input an instance of a subclass of the graph class and returns a sparse matrix.sparseM2Graph takes a sparse matrix as input and returns an instance of the graphNEL class. By default, the graphNEL returned will have directed edges.

Details

A very simple coercion from one representation to another.

Currently it is presumed that the matrix is square. For other graph formats, such as bipartite graphs, some improvements will be needed; patches are welcome.

See Also

graph-class, graphNEL-class, and for other conversions, aM2bpG and ftM2adjM

Examples

Run this code
  set.seed(123)
  g1 <- randomGraph(letters[1:10], 1:4, p=.3)
  s1 <- graph2SparseM(g1, useweights=TRUE)
  g2 <- sparseM2Graph(s1, letters[1:10], edgemode="undirected")
  ## consistency check
  stopifnot(all.equal(g1, g2))

Run the code above in your browser using DataCamp Workspace