​Pelo que entendi, reorder() é o que você precisa usar.

## 5 níveis, 4 repetições.
trt <- gl(5, 4)

## Resposta.
y <- rnorm(length(trt))

boxplot(y~trt)

## Fazer os níveis ordenados pelas médias.
trt0 <- reorder(x=trt, y, FUN=mean)

boxplot(y~trt0)

À disposição.
Walmes.