This function can return a sparse or dense bipartite adjacency matrix of a bipartite network. The bipartite adjacency matrix is an \(n\) times \(m\) matrix, \(n\) and \(m\) are the number of vertices of the two kinds.
Arguments
- graph
The input graph. The direction of the edges is ignored in directed graphs.
- types
An optional vertex type vector to use instead of the
type
vertex attribute. You must supply this argument if the graph has notype
vertex attribute.- attr
Either
NULL
or a character string giving an edge attribute name. IfNULL
, then a traditional bipartite adjacency matrix is returned. If notNULL
then the values of the given edge attribute are included in the bipartite adjacency matrix. If the graph has multiple edges, the edge attribute of an arbitrarily chosen edge (for the multiple edges) is included.- names
Logical scalar, if
TRUE
and the vertices in the graph are named (i.e. the graph has a vertex attribute calledname
), then vertex names will be added to the result as row and column names. Otherwise the ids of the vertices are used as row and column names.- sparse
Logical scalar, if it is
TRUE
then a sparse matrix is created, you will need theMatrix
package for this.
Details
Bipartite graphs have a type
vertex attribute in igraph, this is
boolean and FALSE
for the vertices of the first kind and TRUE
for vertices of the second kind.
Some authors refer to the bipartite adjacency matrix as the "bipartite incidence matrix". igraph 1.6.0 and later does not use this naming to avoid confusion with the edge-vertex incidence matrix.
See also
graph_from_biadjacency_matrix()
for the opposite operation.
Other conversion:
as.matrix.igraph()
,
as_adj_list()
,
as_adjacency_matrix()
,
as_data_frame()
,
as_directed()
,
as_edgelist()
,
as_graphnel()
,
as_long_data_frame()
,
graph_from_adj_list()
,
graph_from_graphnel()
Author
Gabor Csardi csardi.gabor@gmail.com
Examples
g <- make_bipartite_graph(c(0, 1, 0, 1, 0, 0), c(1, 2, 2, 3, 3, 4))
as_biadjacency_matrix(g)
#> 2 4
#> 1 1 0
#> 3 1 1
#> 5 0 0
#> 6 0 0