Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为什么hist()函数没有区域1_R_Histogram_Area - Fatal编程技术网

R 为什么hist()函数没有区域1

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

在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
> 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