其中一个hist()
函数参数是breaks
。它可以是许多选项中的任何一个,其中一个是指定中断次数的单个数字。在我的例子中,我指定了单个数字10.
为什么我有时会收到10个以上的垃圾桶?在这种情况下,15个间隔而不是10个间隔,与指定数量相比有显着偏差50%。
x <- c(98.75,97.92,98.80,98.14,98.95,98.30,98.98,98.47,99.41,98.92,99.25,99.07,99.73,
99.01,100.70,99.95)
findInterval(x,hist(x,10,plot=F)$breaks)
结果是:
[1] 5 1 5 2 6 3 6 4 9 6 8 7 10 7 15 11
我预计最大间隔为10而不是15,任何人都可以解释导致15个间隔的逻辑,尽管我指定数字10用于休息吗?
问题Specify number of bins in hist() in R?提出了类似的问题,但我认为他的例子不够明确。其中一条评论是,为箱子指定的10号是一个建议,似乎这是对事实最接近的答案,但我不确定。
我不一定要有10个箱子,我可以忍受15个箱子,但我正在努力理解逻辑,所以当我使用这个功能时我会知道会发生什么。
答案 0 :(得分:2)
如果您将一个号码传递给breaks
参数,hist
会使用pretty
来计算休息时间:
x <- c(98.75,97.92,98.80,98.14,98.95,98.30,98.98,98.47,99.41,98.92,99.25,99.07,99.73,
99.01,100.70,99.95)
length(pretty(range(x), n = 10, min.n = 1))
#[1] 16
#== 15 bins
identical(hist(x, breaks=10)$breaks,
pretty(range(x), n = 10, min.n = 1))
#[1] TRUE
如果您想拥有确切数量的分档,则需要将显式分隔值传递给hist
:
length(hist(x, breaks = seq(min(x), max(x), length.out=11))$breaks)
#[1] 11
help("hist")
中记录了这一点:
休息
其中一个:
给出直方图单元格之间断点的矢量
计算断点向量的函数,
一个数字,给出直方图的单元格数,
命名算法以计算单元格数的字符串 (参见'详情'),
计算细胞数的函数。
在最后三个案例中,这个数字只是一个建议;该 断点将设置为漂亮的值。如果休息是一个功能,那么 x向量作为唯一参数提供给它。