cutWithMinN: Cut numeric vector into non-empty intervals
Description
Discretizes a numeric vector.
Divides the range of x into intervals, so that each interval contains a minimum number of values, and codes the values in x according to which interval they fall into.
Usage
cutWithMinN(x, intervals=2, min.n=1)
Arguments
x
numeric vector.
intervals
number of intervals required.
min.n
minimum number of values in any interval. Must be greater than length(x)/intervals.
Value
A list with components:
group
integer vector of same length as x indicating which interval each value belongs to.
breaks
numeric vector of length intervals+1 giving the left and right limits of each interval.
Details
This function strikes a compromise between the base functions cut,
which by default cuts a vector into equal length intervals,
and quantile, which is suited to finding equally populated intervals.
It finds a partition of the x values that is as close as possible to equal length intervals while keeping at least min.n values in each interval.
Tied values of x are broken by random jittering, so the partition may vary slightly from run to run if there are many tied values.