C.score: Calculates the (normalised) mean number of checkerboard...

Description Usage Arguments Details Value Note Author(s) References Examples


Calculates the C-score for all higher-level species; the C-score represents the average number of checkerboard units for each unique species pair.


C.score(web, normalise = TRUE, FUN = mean, ...)



A matrix with pollinators as columns and plants as rows. Alternatively, when used on e.g. species occurrences across islands, rows are islands.


Logical; if TRUE (default), the C-score is ranged between 0 (no checkerboards) and 1 (only checkerboards). For FALSE the standard value of mean number of checkerboard pairs is returned. This is somewhat awkward for comparing different data sets, that's what the normalisation is for.


Function to use when summarising the C-scores for each pairwise comparison. Defaults to mean, but other useful functions could be median (because C-scores are rather skewed) or hist (for a nice graph).


Options to be passed on to FUN, e.g. na.rm=T for matrices with many zeros and normalise=TRUE.


As a first step, any quantitative matrix is converted to a binary matrix of presences and absences.

Then, the formula given in Stone and Roberts (1990) is calculated for all species combinations, by calling designdist from the package vegan. See code for details.


Returns whatever the FUN produces as output. Default would be a single value, i.e. the mean C-score of the web.


The normalisation, since Jan. 2015, is by brute force: the 1s and 0s are distributed for each pairwise comparison for maximum checkerboardness. (The previously used approach was incorrect!) As a consequence, large matrices will take some time to compute.

The minimum is set to 0.


Carsten F. Dormann


Gotelli, N.J. and Rohde, K. (2002) Co-occurrence of ectoparasites of marine fishes: a null model analysis. Ecology Letters 5, 86–94

Stone, L. and Roberts, A. (1990) The checkerboard score and species distributions. Oecologia 85, 74–79


m <- matrix(c(1,0,0, 1,1,0, 1,1,0, 0,1,1, 0,0,1), 5,3,TRUE)
C.score(m, normalise=FALSE)
C.score(m, normalise=FALSE, FUN=print)

Search within the bipartite package
Search all R packages, documentation and source code

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

Please suggest features or report bugs with the GitHub issue tracker.

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