Convert a graph to an adjacency matrix or an edge list
Sometimes it is useful to have a standard representation of a graph, like an adjacency matrix or an edge list.
get.adjacency(graph, type=c("both", "upper", "lower"), attr=NULL, names=TRUE, binary=FALSE, sparse=FALSE) get.edgelist(graph, names=TRUE)
- The graph to convert.
- Gives how to create the adjacency matrix for undirected
graphs. It is ignored for directed graphs. Possible values:
upper: the upper right triangle of the matrix is used,
lower: the lower left triangle of the matrix i
NULLor a character string giving an edge attribute name. If
NULLa traditional adjacency matrix is returned. If not
NULLthen the values of the given edge attribute are included in the adjacency m
- Logical constant.
graph.adjacenctit gives whether to assign row and column names to the matrix. These are only assigned if the
namevertex attribute is present in the graph.
- Logical, whether to return a binary matrix. This argument
is ignored if
- Logical scalar, whether to create a sparse matrix. The
package must be installed for creating sparse matrices.
get.adjacency returns the adjacency matrix of a graph, a
regular Rmatrix if
FALSE, or a sparse
matrix, as defined in the
get.edgelist returns the list of edges in a graph.
vcount(graph)(usually) numeric matrix for
get.adjacency. (This can be huge!) Note that a non-numeric matrix might be returned if
attris a non-numeric edge attribute.
ecount(graph)by 2 numeric matrix for
- Edge list
- Adjacency list
g <- erdos.renyi.game(10, 2/10) get.edgelist(g) get.adjacency(g) V(g)$name <- letters[1:vcount(g)] get.adjacency(g) E(g)$weight <- runif(ecount(g)) get.adjacency(g, attr="weight")