# cut2

##### Cut a Numeric Variable into Intervals

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.

- Keywords
- nonparametric, category

##### Usage

```
cut2(x, cuts, m=150, g, levels.mean=FALSE, digits, minmax=TRUE,
oneval=TRUE, onlycuts=FALSE, formatfun=format, …)
```

##### 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)- …
additional arguments passed to

`formatfun`

##### Value

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

##### See Also

##### Examples

```
# NOT RUN {
set.seed(1)
x <- runif(1000, 0, 100)
z <- cut2(x, c(10,20,30))
table(z)
table(cut2(x, g=10)) # quantile groups
table(cut2(x, m=50)) # group x into intevals with at least 50 obs.
# }
```

*Documentation reproduced from package Hmisc, version 4.3-1, License: GPL (>= 2)*