以下代码使用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()
Run Code Online (Sandbox Code Playgroud)
但是,使用诸如mean_sdl之类的辅助函数实现上述功能似乎要好得多.例如,以下代码生成具有95%CI错误条的图:
ggplot(mtcars, aes(cyl, qsec)) +
stat_summary(fun.y = mean, geom = "bar") +
stat_summary(fun.data = mean_sdl, geom = "errorbar")
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用stat_summary实现标准误差条.问题是要计算SE,你需要每个条件的观测数量,这必须在mean_sdl的乘数中访问.
如何在ggplot中访问此信息?对此有一个简洁的非hacky解决方案吗?