就像提出这个问题的人(How do I scale the y-axis on a histogram by the x values in R?)一样,我感兴趣的是绘制直方图,而不是计数。
我非常喜欢一位评论者建议的解决方案:
d<-rgamma(100,5,1.5)
z<-hist(d,plot=FALSE)
co<-z$counts # original counts of each bin
z$counts<-aggregate(d,list(cut(d,z$breaks)),sum)$x # sum up the value of data in each bin
plot(z)
但是,如果有空箱,此方法不会给出相应的答案。例如:
z2<-hist(d,plot=FALSE,breaks=100)
z2$counts<-aggregate(d,list(cut(d,z2$breaks)),sum)$x
plot(z2)
给出了一个明确错误形状的直方图。它似乎可以重复非空箱,以便填写必要的插槽。
有没有更好的方法做同样的事情?
答案 0 :(得分:1)
我认为您只想替换z2 $计数中存在非零值的元素:
z2<-hist(d,plot=FALSE,breaks=100)
z2$counts[z2$counts >0] <-aggregate(d,list(cut(d,z2$breaks)),sum)$x
plot(z2, ylab="Totals")