nclass
Compute the Number of Classes for a Histogram
Compute the number of classes for a histogram.
 Keywords
 univar
Usage
nclass.Sturges(x)
nclass.scott(x)
nclass.FD(x)
Arguments
 x
 A data vector.
Details
nclass.Sturges
uses Sturges' formula, implicitly basing bin
sizes on the range of the data.
nclass.scott
uses Scott's choice for a normal distribution based on
the estimate of the standard error, unless that is zero where it
returns 1
.
nclass.FD
uses the FreedmanDiaconis choice based on the
interquartile range (IQR
) unless that's zero where it
reverts to mad(x, constant = 2)
and when that is $0$
as well, returns 1
.
Value

The suggested number of classes.
References
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with SPLUS. Springer, page 112.
Freedman, D. and Diaconis, P. (1981) On the histogram as a density estimator: $L_2$ theory. Zeitschrift für Wahrscheinlichkeitstheorie und verwandte Gebiete 57, 453476.
Scott, D. W. (1979) On optimal and databased histograms. Biometrika 66, 605610.
Scott, D. W. (1992) Multivariate Density Estimation. Theory, Practice, and Visualization. Wiley.
Sturges, H. A. (1926) The choice of a class interval. Journal of the American Statistical Association 21, 6566.
See Also
hist
and truehist
(package
\href{https://CRAN.Rproject.org/package=#1}{\pkg{#1}}MASSMASS); dpih
(package
\href{https://CRAN.Rproject.org/package=#1}{\pkg{#1}}KernSmoothKernSmooth) for a plugin bandwidth proposed by Wand(1995).
Examples
library(grDevices)
set.seed(1)
x < stats::rnorm(1111)
nclass.Sturges(x)
## Compare them:
NC < function(x) c(Sturges = nclass.Sturges(x),
Scott = nclass.scott(x), FD = nclass.FD(x))
NC(x)
onePt < rep(1, 11)
NC(onePt) # no longer gives NaN