Calculates the (normalised) mean number of checkerboard combinations (C-score) in a matrix

Description

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

Usage

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

Arguments

web

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

normalise

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.

FUN

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.

Details

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.

Value

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

Note

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.

Author(s)

Carsten F. Dormann

References

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

Examples

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

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