blob: e893584706c99d3dd71c24f197eb3845a772824d [file] [log] [blame]
% File src/library/grDevices/man/nclass.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2018 R Core Team
% Distributed under GPL 2 or later
\name{nclass}
\alias{nclass.Sturges}
\alias{nclass.scott}
\alias{nclass.FD}
\encoding{UTF-8}
\title{Compute the Number of Classes for a Histogram}
\description{
Compute the number of classes for a histogram.
}
\usage{
nclass.Sturges(x)
nclass.scott(x)
nclass.FD(x)
}
\arguments{
\item{x}{a data vector.}
}
\value{
The suggested number of classes.
}
\details{
\code{nclass.Sturges} uses Sturges' formula, implicitly basing bin
sizes on the range of the data.
\code{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 \code{1}.
\code{nclass.FD} uses the Freedman-Diaconis choice based on the
inter-quartile range (\code{\link{IQR}(signif(x, 5))}) unless that's
zero where it uses increasingly more extreme symmetric quantiles up to
c(1,511)/512 and if that difference is still zero, reverts to using
Scott's choice.
}
\references{
Venables, W. N. and Ripley, B. D. (2002)
\emph{Modern Applied Statistics with S-PLUS.}
Springer, page 112.
Freedman, D. and Diaconis, P. (1981).
On the histogram as a density estimator: \eqn{L_2} theory.
\emph{Zeitschrift \enc{für}{fuer} Wahrscheinlichkeitstheorie
und verwandte Gebiete}, \bold{57}, 453--476.
\doi{10.1007/BF01025868}.
Scott, D. W. (1979).
On optimal and data-based histograms.
\emph{Biometrika}, \bold{66}, 605--610.
\doi{10.2307/2335182}.
Scott, D. W. (1992)
\emph{Multivariate Density Estimation. Theory, Practice, and
Visualization}. Wiley.
Sturges, H. A. (1926).
The choice of a class interval.
\emph{Journal of the American Statistical Association}, \bold{21},
65--66.
\doi{10.1080/01621459.1926.10502161}.
}
\seealso{
\code{\link{hist}} and \code{\link[MASS]{truehist}} (package
\CRANpkg{MASS}); \code{\link[KernSmooth]{dpih}} (package
\CRANpkg{KernSmooth}) for a plugin bandwidth proposed by Wand(1995).
}
\examples{
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
}
\keyword{univar}