conversion {igraph}R Documentation

Convert a graph to an adjacency matrix or an edge list

Description

Sometimes it is useful to have a standard representation of a graph, like an adjacency matrix or an edge list.

Usage

get.adjacency(graph, type=c("both", "upper", "lower"),
       attr=NULL, names=TRUE, binary=FALSE, sparse=FALSE)
get.edgelist(graph, names=TRUE)

Arguments

graph

The graph to convert.

type

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 is used. both: the whole matrix is used, a symmetric matrix is returned.

attr

Either NULL or a character string giving an edge attribute name. If NULL a traditional adjacency matrix is returned. If not NULL then the values of the given edge attribute are included in the adjacency matrix. If the graph has multiple edges, the edge attribute of an arbitrarily chosen edge (for the multiple edges) is included.

names

Logical constant.

For graph.adjacenct it gives whether to assign row and column names to the matrix. These are only assigned if the name vertex attribute is present in the graph.

for get.edgelist it gives whether to return a character matrix containing vertex names (ie. the name vertex attribute) if they exist or numeric vertex ids.

binary

Logical, whether to return a binary matrix. This argument is ignored if attr is not NULL.

sparse

Logical scalar, whether to create a sparse matrix. The ‘Matrix’ package must be installed for creating sparse matrices.

Details

get.adjacency returns the adjacency matrix of a graph, a regular R matrix if sparse is FALSE, or a sparse matrix, as defined in the ‘Matrix’ package, if sparse if TRUE.

get.edgelist returns the list of edges in a graph.

Value

A vcount(graph) by vcount(graph) (usually) numeric matrix for get.adjacency. (This can be huge!) Note that a non-numeric matrix might be returned if attr is a non-numeric edge attribute.

A ecount(graph) by 2 numeric matrix for get.edgelist.

Author(s)

Gabor Csardi csardi@rmki.kfki.hu

See Also

graph.adjacency, read.graph

Examples

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")

[Package igraph version 0.5.5-4 Index]