R 在ggplot2中,如何制作跨因子比例的条形图(并添加误差条)?

R 在ggplot2中,如何制作跨因子比例的条形图(并添加误差条)?,r,ggplot2,R,Ggplot2,我正在努力制作一个图表,显示一个变量在ggplot中的一个因子中所占的比例 以mtcars数据为例,从中窃取部分解决方案,我可以想出 ggplot(mtcars, aes(x = as.factor(cyl))) + geom_bar(aes(y = (..count..)/sum(..count..))) + scale_y_continuous(labels = percent_format()) 该图给出了整个数据集中每个cyl类别的比例 我想知道的是每个cyl类别中有自动

我正在努力制作一个图表,显示一个变量在ggplot中的一个因子中所占的比例

mtcars
数据为例,从中窃取部分解决方案,我可以想出

ggplot(mtcars, aes(x = as.factor(cyl))) +  
  geom_bar(aes(y = (..count..)/sum(..count..))) + 
  scale_y_continuous(labels = percent_format())
该图给出了整个数据集中每个
cyl
类别的比例

我想知道的是每个
cyl
类别中有自动变速器的汽车的比例(二进制变量
am

在每个栏的顶部,我想为比例添加一个误差栏

是否可以仅使用
ggplot
执行此操作?或者我必须首先准备一个包含摘要的数据框,并将其与条形图的
identity
选项一起使用吗


我在网页上找到了一些示例,但它们处理的是连续的y变量。

我认为制作新的数据框并使用它进行绘图会更容易。这里我计算了比例和上下置信区间值(从
prop.test()
result中获取)

库(plyr)

纽特汉克斯山很多。他真是个魅力人物!
library(plyr)
mt.new<-ddply(mtcars,.(cyl),summarise,
      prop=sum(am)/length(am),
      low=prop.test(sum(am),length(am))$conf.int[1],
      upper=prop.test(sum(am),length(am))$conf.int[2])

ggplot(mt.new,aes(as.factor(cyl),y=prop,ymin=low,ymax=upper))+
  geom_bar(stat="identity")+
  geom_errorbar()