Calculates the rank of a species in a matrix sorted for maximum nestedness


Ranks species according to their generality, which is measured as the position in the nestedness matrix. A generalist will interact with more species and thus have a rank closer to 1, while specialists (and rare species) will have ranks with higher values.


nestedrank(web, method = "NODF", weighted=TRUE, normalise=TRUE, return.matrix=FALSE)



A matrix with elements of a set (e.g., plants) as rows, elements of a second set (e.g., pollinators) as columns and number of interactions as entries.


One or more of the following: NODF, nodf, binmatnest, wine, sort. See details for details on each method.


For NODF and wine only: should the number of interactions per link be used as weights? See help of nestednodf in vegan for details.


Logical; defaulting to TRUE. Divides the rank-1 by the number of species -1, thereby ranging it between 0 (most generalist) and 1 (most specialised).


Logical, defaulting to FALSE. Should the matrix resulting from the nestedness-sorting be returned as well?


The idea is to re-arrange the network matrix according to its nestedness, so that the most “generalist” species with most links will be in the first row/column and decreasing from there. The nestedness matrix can be computed in different ways. There are four different methods currently available:

NODF (or nodf)

will use vegan's nestednodf-function to arrange the matrix. With weighted=TRUE, which is the default, it will use the actual number of interactions, rather than the number of links


will use the vegan's nestedtemp-function to arrange the matrix. This is only using binary information, so weighting has no effect.


will use the wine-function to arrange the matrix. When weighted=FALSE, wine will be applied to a binary matrix.


will simply sort the matrix by marginal totals (i.e. by number of interactions per species when weighted=TRUE or by number links (=degree) when weighted=FALSE. In this case the rank simply represents the abundance of the species in this network.


A list of nestedness ranks vectors for the lower and higher trophic level (smallest value for the most generalist). If return.matrix=TRUE, a third list entry will contain the nested matrix.


Since nestedness is itself not a straight-forward measure of something ecologically meaningful, also these ranks may or may not be. At least there is a high chance that they represent merely abundance of each species. See example for an idea on how to check for the effect of abundance as such.


Carsten F. Dormann


Alarcon, R., Waser, N.M. and Ollerton, J. 2008. Year-to-year variation in the topology of a plant-pollinator interaction network. Oikos 117, 1796–1807

See Also

nested; nestedrank is called by specieslevel


## Not run: 
ranks <- sapply(c("nodf", "binmatnest", "wine", "sort"), function(x) 
  nestedrank(Safariland, method=x)[[2]])
cor(ranks) # high correlation between sort and other indicate that only abundance matters

## End(Not run)

Want to suggest features or report bugs for Use the GitHub issue tracker.

comments powered by Disqus