確かに geom_histogram を使用できないようで、代わりにカウント (バーの高さ) と信頼区間の限界を手動で計算する必要があります。まず、カウントを計算するには:
library(plyr)
mtcars_counts <- ddply(mtcars, .(carb), function(x) data.frame(count=nrow(x)))
残りの問題は、二項比率の信頼区間を計算することです。ここでは、カウントをデータセット内のケースの総数で割ったものです。文献ではさまざまな式が提案されています。ここでは、PropCIs ライブラリに実装されている Agresti & Coull (1998) メソッドを使用します。
library(PropCIs)
numTotTrials <- sum(mtcars_counts$count)
# Create a CI function for use with ddply and based on our total number of cases.
makeAdd4CIforThisHist <- function(totNumCases,conf.int) {
add4CIforThisHist <- function(df) {
CIstuff<- add4ci(df$count,totNumCases,conf.int)
data.frame( ymin= totNumCases*CIstuff$conf.int[1], ymax = totNumCases*CIstuff$conf.int[2] )
}
return (add4CIforThisHist)
}
calcCI <- makeAdd4CIforThisHist(numTotTrials,.95)
limits<- ddply(mtcars_counts,.(carb),calcCI) #calculate the CI min,max for each bar
mtcars_counts <- merge(mtcars_counts,limits) #combine the counts dataframe with the CIs
g<-ggplot(data =mtcars_counts, aes(x=carb,y=count,ymin=ymin,ymax=ymax)) + geom_bar(stat="identity",fill="grey")
g+geom_errorbar()