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).