理解R中的hist()和间隔

时间:2018-03-22 21:39:48

标签: r plot histogram

我最近开始使用R,我认为我不太了解hist()功能。我目前正在使用长度为296的数字向量,我想将其分成10个相等的间隔,并生成频率直方图以查看哪些值落入每个间隔。我认为hist(dataset, breaks = 10)可以完成这项工作,但它将其分为12个区间。我显然误解了breaks的作用。

如果我想在直方图中将数据分成10个区间,我应该怎么做呢?谢谢。

2 个答案:

答案 0 :(得分:2)

根据documentation,如果您为breaks参数提供单个数字,则会将其视为建议,因为它会提供pretty个断点。如果你想强制它是10个等间距的箱子,最简单的可能是以下,

x = rnorm(50)
hist(x, breaks = seq(min(x), max(x), length.out = 11))

长度应为n+1,其中n是所需广告的数量。

答案 1 :(得分:0)

如果您阅读help(hist),您会找到以下解释:

  

休息:其中之一:

     

•给出直方图单元格之间断点的向量

     

•计算断点向量的函数,

     

•一个数字给出直方图的单元格数,

     

•一个字符串,命名一个算法来计算                 单元格数量(参见“详细信息”),

     

•计算细胞数的函数。

     

在最后三个案例中,这个数字只是一个建议;如             断点将设置为“漂亮”值,数字为             限于'1e6'(如果它更大则带警告)。如果             'break'是一个函数,'x'向量作为             唯一的参数(和休息的数量是有限的

因此,该帮助明确指出,如果您为函数提供一个数字,它将仅用作建议。

一种可能的解决方案是自己提供断点:

x <- rnorm(296)
hist(x, breaks=c(-4,-3,-2,-1,0,1,2,3,4,5))

如果您不想这样做,而是想要指定垃圾箱数量,可以使用cut功能

plot(cut(x, 10))