Use stat_summary para anotar el gráfico con el número de observaciones

Como puedo usarstat_summary para etiquetar una parcela conn = x dónde estáx ¿una variable? Aquí hay un ejemplo de la salida deseada:

Puedo hacer que el gráfico anterior con este código bastante ineficiente:

nlabels <- sapply(1:length(unique(mtcars$cyl)), function(i) as.vector(t(as.data.frame(table(mtcars$cyl))[,2][[i]])))
ggplot(mtcars, aes(factor(cyl), mpg, label=rownames(mtcars))) +
  geom_boxplot(fill = "grey80", colour = "#3366FF") + 
  geom_text(aes(x = 1, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[1]]), label = paste0("n = ",nlabels[[1]]) )) +
  geom_text(aes(x = 2, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[2]]), label = paste0("n = ",nlabels[[2]]) )) +
  geom_text(aes(x = 3, y = median(mtcars$mpg[mtcars$cyl==sort(unique(mtcars$cyl))[3]]), label = paste0("n = ",nlabels[[3]]) )) 

Este es un seguimiento de esta pregunta:¿Cómo agregar un número de observaciones por grupo y usar la media de grupo en ggplot2 boxplot? donde puedo usarstat_summary para calcular y mostrar el número de observaciones, pero no he podido encontrar una manera de incluirn = en elstat_summary salida. Parecestat_summary Puede ser la forma más eficiente de hacer este tipo de etiquetado, pero otros métodos son bienvenidos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta