我最近开始使用R,我认为我不太了解hist()
功能。我目前正在使用长度为296的数字向量,我想将其分成10个相等的间隔,并生成频率直方图以查看哪些值落入每个间隔。我认为hist(dataset, breaks = 10)
可以完成这项工作,但它将其分为12个区间。我显然误解了breaks
的作用。
如果我想在直方图中将数据分成10个区间,我应该怎么做呢?谢谢。
答案 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))