I am having to deal quite often with the same kind of analysis. Since the data are percentages (i.e. percent cover) the ideal way, in my opinion, is to use beta regression using the
betareg package in
R for example. However, since zeros are part of our life when doing vegetation surveys,
betareg cannot be used as it requires the interval (0,1). Hence, I moved to zero-inflated beta regression models via the
gamlss package (see also my question here). This package comes with a lot of other useful distributions. However, it becomes problematic when you have factor levels (e.g. treatments) and you want to do for example Tukey adjusted multiple means comparisons. @rvl who wrote the
emmeans package provided preliminary support to do this, however, with a word of caution. Note though that for
betareg models the
emmeans package works perfectly well.
What I sometimes do to reduce the amount of zeros, is to sum species percentages across those species that I can group into herbaceous species, woody species, native species, non-native species, etc. That will in my case often reduce the amount of zeros substantially in the dataset. Then I can follow up with an ad-hoc scaling procedure that moves the remaining zeros into the (0,1) interval (as suggested in Smithson & Verkuilen (see betareg vignette)):
[...] if y also assumes the extremes 0 and 1, a useful transformation in practice is (y·(n−1) + 0.5)/n where n is the sample size (Smithson and Verkuilen 2006).
The next set of tools to analyze vegetation cover data would be Bayesian, as implemented in the
zoib package for example. However, I haven't explored the Bayesian models yet but it's certainly on the to-do list.