Function like cut but left endpoints are inclusive and labels are of
the form [lower, upper), except that last interval is [lower,upper].
If cuts are given, will by default make sure that cuts include entire
range of x.
Also, if cuts are not given, will cut x into quantile groups
(g given) or groups
with a given minimum number of observations (m). Whereas cut creates a
category object, cut2 creates a factor object.
a factor variable with levels of the form [a,b) or formatted means
(character strings) unless onlycuts is TRUE in which case
a numeric vector is returned
Arguments
x
numeric vector to classify into intervals
cuts
cut points
m
desired minimum number of observations in a group. The algorithm does
not guarantee that all groups will have at least m observations.
g
number of quantile groups
levels.mean
set to TRUE to make the new categorical vector have levels attribute that is
the group means of x instead of interval endpoint labels
digits
number of significant digits to use in constructing levels. Default is 3
(5 if levels.mean=TRUE)
minmax
if cuts is specified but min(x)<min(cuts) or max(x)>max(cuts), augments
cuts to include min and max x
oneval
if an interval contains only one unique value, the interval will be
labeled with the formatted version of that value instead of the
interval endpoints, unless oneval=FALSE
onlycuts
set to TRUE to only return the vector of computed cuts. This
consists of the interior values plus outer ranges.
formatfun
formatting function, supports formula notation (if rlang is installed)
set.seed(1)
x <- runif(1000, 0, 100)
z <- cut2(x, c(10,20,30))
table(z)
table(cut2(x, g=10)) # quantile groupstable(cut2(x, m=50)) # group x into intevals with at least 50 obs.