Here's one idea, which may very well match Ben's answer.
First, obtain the "eff"
contrasts, which comprise comparisons between each mean and the average of all the means:
> mod <- lm(Petal.Width ~ Species, data = iris)
> library(emmeans)
> EMM <- emmeans(mod, "Species")
> (CON = contrast(EMM, "eff"))
contrast estimate SE df t.ratio p.value
setosa effect -0.953 0.0236 147 -40.343 <.0001
versicolor effect 0.127 0.0236 147 5.360 <.0001
virginica effect 0.827 0.0236 147 34.982 <.0001
P value adjustment: fdr method for 3 tests
Now, there is a relation between $R^2$ and $F$:
$$ R^2 = 1 - (1 + df_R\cdot F / df_E)^{-1} $$
where $df_R$ is the d.f. for regression and $df_E$ is the d.f. for error. In this case, we want to develop an $R^2$-like statistic for each level of Species
. And note that each $t^2$ is an $F$ statistic with one numerator d.f. accordingly, calculate:
> F <- test(CON)$t.ratio^2
> 1 - 1 / (1 + F/147)
[1] 0.9171609 0.1634979 0.8927607
I'll claim these are like $R^2$ statistics. They sum to more than 1 because they are interdependent.