Project Status: Active – The project has reached a stable, usable state and is being actively developed. cran checks Travis build status rstudio mirror downloads cran version DOI ============

Measurement of Biodiversity in R

This repository hosts an R package that is actively being developed for estimating biodiversity and the components of its change. The key innovations of this R package over other R packages that also carry out rarefaction (e.g., vegan, iNext) is that mobr is focused on 1) making empirical comparisons between treatments or gradients, and 2) our framework emphasizes how changes in biodiversity are linked to changes in community structure: the SAD, total abundance, and spatial aggregation.

The concepts and methods behind this R package are described in three publications.

McGlinn, D.J. X. Xiao, F. May, N.J Gotelli, T. Engel, S.A Blowes, T.M. Knight, O. Purschke, J.M Chase, and B.J. McGill. 2019. MoB (Measurement of Biodiversity): a method to separate the scale-dependent effects of species abundance distribution, density, and aggregation on diversity change. Methods in Ecology and Evolution. 10:258–269.

McGlinn, D.J. T. Engel, S.A. Blowes, N.J. Gotelli, T.M. Knight, B.J. McGill, N. Sanders, and J.M. Chase. 2020. A multiscale framework for disentangling the roles of evenness, density, and aggregation on diversity gradients. Ecology.

Chase, J.M., B. McGill, D.J. McGlinn, F. May, S.A. Blowes, X. Xiao, T. Knight. 2018. Embracing scale-dependence to achieve a deeper understanding of biodiversity and its change across communities. Ecology Letters. 21: 1737–1751.

Please cite mobr. Run the following to get the appropriate citation for the version you’re using:

citation(package = "mobr")



Or, install development version


Now that devtools is installed you can install `mobr using the following R code:



The package vignette provides a useful walk-through the package tools, but below is some example code that uses the two key analyses and related graphics.

inv_mob_in = make_mob_in(inv_comm, inv_plot_attr, coord_names = c('x', 'y'))
inv_stats = get_mob_stats(inv_mob_in, 'group', ref_level = 'uninvaded')
inv_deltaS = get_delta_stats(inv_mob_in, 'group', ref_level='uninvaded',
                             type='discrete', log_scale=TRUE, n_perm = 5)
plot(inv_deltaS, 'b1')