Следующий код создает штриховые графики со стандартными барами ошибок с использованием Hmisc, ddply и ggplot:
means_se <- ddply(mtcars,.(cyl),
function(df) smean.sdl(df$qsec,mult=sqrt(length(df$qsec))^-1))
colnames(means_se) <- c("cyl","mean","lower","upper")
ggplot(means_se,aes(cyl,mean,ymax=upper,ymin=lower,group=1)) +
geom_bar(stat="identity") +
geom_errorbar()
Однако реализация вышеперечисленного с использованием вспомогательных функций, таких как mean_sdl, кажется намного лучше. Например, следующий код создает график с 95% CI ошибками:
ggplot(mtcars, aes(cyl, qsec)) +
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_sdl, geom = "errorbar")
Мой вопрос заключается в том, как использовать реализацию stat_summary для стандартных баров ошибок. Проблема в том, что для вычисления SE вам необходимо количество наблюдений за состояние, и к этому нужно обращаться в мультипликаторе mean_sdl.
Как мне получить доступ к этой информации в ggplot? Для этого есть аккуратное не-хакерское решение?