[R] histogramm$density

Peter Dalgaard p.dalgaard at biostat.ku.dk
Fri Dec 26 13:25:42 CET 2008


austernkommunikation at googlemail.com wrote:
> hello,
> 
> 
> i am using the hist function with classified values. The class breaks are >1, so 
> histogram$density is != 1.
> 
> How to plot the histogram with freq=FALSE and the real class density values.
> I used:
> 
>> h2 = hist(value, breaks = breaks_vector)
>> h2$density = round(h2$counts/sum(h2$counts), 2)
>> h2$intensities = h2$density
>> plot(h2, freq=F)
> 
> but this isn't the best way, i think.
> 
> Also i would like to add the density function line with
> 
>>  lines(density(value)
> 
> but of course it doesn't fit, due to the modified h2$density values.
> 
> Where is my fault?

You are confusing the concepts of density and relative frequency. The 
former is what is on the same scale as density(.) -- if you multiply the 
x values by 10, the density is divided by 10 so that the _integral_ 
under the histogram is kept at 1, and if you join two intervals, the 
density will become an average of the original two.

With relative frequencies, the _sum_ of the column heights is 1, and 
joining columns will _add_ the heights. For essentially the same reason, 
with non-equidistant breaks, this is not comparable to density(.).


-- 
    O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-help mailing list