Properties of the functional space significantly across beach levels
We represented the functional space of each beach level using n-dimensional hypervolumes (Blonder et al., 2014; Blonder & Harris, 2018), calculated with the function ‘kernel.build’ in the R package BAT (Cardoso et al., 2015, 2021). We used a Gaussian approximation with a default bandwidth, and we weighted each species according to the number of times it has been recorded in each level (‘abund’ option = TRUE) (Supplementary Table S4 for further details).
As a proxy of the number of functions performed by the species in a given level, we extracted the functional richness of the hypervolume of each beach level using the function ‘kernel.alpha’ (Mammola & Cardoso, 2020). We then compared the functional richness observed at each beach level with the average of the functional richness obtained from 1000 combinations of the same number of species randomly sampled from the complete species pool via null modelling. We tested the significance of the differences using standard size effects as implemented by the function ‘ses’ in the R package BAT.
In addition, we calculated the functional contribution of each species to the functional space of each level using the function ‘kernel.contribution’ in BAT (Mammola & Cardoso, 2020). Functional contribution was expressed as the difference between the functional richness with and without each of the species in the community (option ‘one-out). Species with high functional contribution can be interpreted as functionally unique, whereas species exhibiting small contribution are more likely functionally redundant. We plotted the distribution of the species contribution in each level with a density plot using the R package ggplot2 v. 3.3.6 (Wickham, 2016).