R 为什么hist()函数没有区域1
在R中使用R 为什么hist()函数没有区域1,r,histogram,area,R,Histogram,Area,在R中使用hist()并设置freq=FALSE时,我应该得到一个值。然而,我没有。除了显示计数外,我还得到其他数字。我仍然需要恢复正常 例如: > h = hist(c(1,2,1,3,1,4,5,4,5,8,2,4,1,7,6,10,7,4,3,7,3,5), freq=FALSE) > h$density 0.13636364 0.15909091 0.09090909 0.09090909 0.02272727 > sum(h$density) [1] 0.5
hist()
并设置freq=FALSE
时,我应该得到一个值。然而,我没有。除了显示计数外,我还得到其他数字。我仍然需要恢复正常
例如:
> h = hist(c(1,2,1,3,1,4,5,4,5,8,2,4,1,7,6,10,7,4,3,7,3,5), freq=FALSE)
> h$density
0.13636364 0.15909091 0.09090909 0.09090909 0.02272727
> sum(h$density)
[1] 0.5
> h$density/sum(h$density)
[1] 0.27272727 0.31818182 0.18181818 0.18181818 0.0454545
如果检查直方图输出的其余部分,您将注意到条形图的长度为2:
$breaks
[1] 0 2 4 6 8 10
因此,您应该将总和(h$密度)
乘以2,使面积等于1。如果你看直方图,你可以清楚地看到这一点
直方图的区域实际上是
1.0
。你没有考虑到的是,每个酒吧都有两个单位宽:
> h$breaks
[1] 0 2 4 6 8 10
要获得宽度,请使用
diff(h$breaks)
或只使用sum(h$density*diff(h$breaks))
谢谢!你每天都在学习。很高兴知道,因为我经常这样做。
sum(h$density*(h$breaks[-1] - h$breaks[-length(h$breaks)]))
[1] 1