Dividing the range of an age variable x into intervals is a frequent task. The commonly used function cut has unfavourable default values for this. CutAge() is a convenient wrapper for cutting age variables in groups of e.g. 10 years with more suitable defaults.

CutAge(x, from = 0, to = 90, by = 10, right = FALSE, ordered_result = TRUE, ...)

Arguments

x

continuous variable.

from, to

the starting and (maximal) end values of the sequence.

by

number: increment of the sequence. Default is 10, alternatives could be 5 or 20.

right

logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa. Default is FALSE - unlike in cut!

ordered_result

logical: should the result be an ordered factor? Default is TRUE - unlike in cut!

...

the dots are passed on to the underlying function cut(). Use these for e.g. change the labels.

Value

A factor is returned, unless labels = FALSE which results in an integer vector of level codes.

Values which fall outside the range of breaks are coded as NA, as are NaN and NA values.

Author

Andri Signorell <andri@signorell.net>

See also

Examples

Desc(CutAge(sample(100, 100)))
#> ────────────────────────────────────────────────────────────────────────────── 
#> CutAge(sample(100, 100)) (ordered, factor)
#> 
#>   length      n    NAs unique levels  dupes
#>      100    100      0     10     10      y
#>          100.0%   0.0%                     
#> 
#>        level  freq   perc  cumfreq  cumperc
#> 1     [0,10)     9   9.0%        9     9.0%
#> 2    [10,20)    10  10.0%       19    19.0%
#> 3    [20,30)    10  10.0%       29    29.0%
#> 4    [30,40)    10  10.0%       39    39.0%
#> 5    [40,50)    10  10.0%       49    49.0%
#> 6    [50,60)    10  10.0%       59    59.0%
#> 7    [60,70)    10  10.0%       69    69.0%
#> 8    [70,80)    10  10.0%       79    79.0%
#> 9    [80,90)    10  10.0%       89    89.0%
#> 10  [90,Inf)    11  11.0%      100   100.0%
#>