Conversion of a network matrix

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/


This helper function converts a bipartite matrix into a one-mode matrix.


1, fill = 0, project="full", weighted=TRUE)



A matrix with lower trophic level species as rows, higher trophic level species as columns and number of interactions as entries.


What shall unobserved combinations be represented as in the one-mode matrix (see below)? Defaults to 0. Set to NA if links not possible for bipartite networks should be masked (i.e. those within a level).


There are different ways to convert a two-mode (bipartite) network into one-mode networks. The most common is to focus on one set (e.g. the n pollinators) and compute a n x n matrix with entries between species that pollinate the same plant (“higher”). Similarly, one can compute a k x k matrix for the k plant species (“lower”). Or, finally and the default, one can compute an (n+k) x (n+k) matrix in which only the observed interactions are present (“full”). This is in fact a near-trivial, symmetric matrix with 0s between species of the same trophic level.


Logical; shall the strength of links be included in the one-mode output? Defaults to TRUE, but can be set to FALSE to turn a weighted two-mode into a binary one-mode network.


In bipartite (or: two-mode) networks, participants are of different types (e.g. pollinators and plants, actors and parties in social research). Hence, a party cannot connect to another party except through actors. A pollinator interacts with another pollinator only through the host plant.

Much network theory, however, is based on one-mode networks, where all participants are listed in one vector, i.e. plants and pollinators alike, actors together with events. This function here transforms the more condensed bipartite representation into a one-mode-representation, filling the unobserved type of interactions (i.e. plants with plants and pollinators with pollinators) with 0 (unless you specify it differently in fill).

The lower trophic level (e.g. plants or rows) is listed first, then the higher trophic level (e.g. pollinators or columns). Hence, pollinator 2 becomes species number r+2, where r is the number of rows of the network matrix.

The benefit of this conversion is access to the wonderful R-package Social Network Analysis (sna), with its many one-mode indices (such as betweenness, closeness, centralization, degree, kpath.census and so forth). Furthermore, gplot in that package also provides cool network depictions well worth checking out.

With respect to bipartite, is employed in the function nodespec, which itself uses the sna-function geodist.


A matrix of dimension (n+k) x (n+k), where n and k are the dimensions of the input web. Both dimensions are given the names of the original web (first the lower, then the higher trophic level).


Carsten F. Dormann

See Also

Function projecting_tm in package tnet provide smarter ways of converting two-modes into one-modes. This function can be accessed after transforming the web-matrix into an edge list using web2edges.



Example output

Loading required package: vegan
Loading required package: permute
Loading required package: lattice
This is vegan 2.4-3
Loading required package: sna
Loading required package: statnet.common
Loading required package: network
network: Classes for Relational Data
Version 1.13.0 created on 2015-08-31.
copyright (c) 2005, Carter T. Butts, University of California-Irvine
                    Mark S. Handcock, University of California -- Los Angeles
                    David R. Hunter, Penn State University
                    Martina Morris, University of Washington
                    Skye Bender-deMoll, University of Washington
 For citation information, type citation("network").
 Type help("network-package") to get started.

sna: Tools for Social Network Analysis
Version 2.4 created on 2016-07-23.
copyright (c) 2005, Carter T. Butts, University of California-Irvine
 For citation information, type citation("sna").
 Type help(package="sna") to get started.

 This is bipartite 2.08
 For latest changes see versionlog in  ?"bipartite-package".
 For citation see: citation("bipartite").
 Have a nice time plotting and analysing two-mode networks.

Attaching package: 'bipartite'

The following object is masked from 'package:vegan':


bipartite documentation built on May 30, 2017, 1:25 a.m.