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

1 | ```
as.one.mode(web, fill = 0, project="full", weighted=TRUE)
``` |

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

`fill` |
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). |

`project` |
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. |

`weighted` |
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, `as.one.mode`

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 carsten.dormann@biom.uni-freiburg.de

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`

.

1 2 3 |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.