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.