Groups numeric age values into categorized age bands using one of three
methods: fixed interval ("interval"), equal distance ("distance"),
or quantile-based grouping ("quantile"). Supports flexible labeling and
language-specific suffixes.
Numeric vector of ages.
Character. Grouping method: "interval" (custom breaks),
"distance" (uniform width), or "quantile" (equal-sized groups).
Integer. Width of age bands (used only
if method = "distance"). Default is 5.
Numeric. Upper limit of the age range (used in "distance"
method).
Logical. Whether to separate age 0 into its own group
(only used if method = "distance"). Default is TRUE.
Numeric vector of breakpoints (required if
method = "interval").
Character vector of labels for resulting age groups.
If NULL, default interval-style labels are generated.
Output language for default labels, "cn" (Chinese)
or "en" (English). Default is "cn".
Character string appended to labels, e.g., "yrs".
Default depends on lang.
Logical. Whether intervals are right-closed. Passed to cut().
Default is FALSE.
A factor variable of age groups with labeled levels.
ages <- sample(0:101, 200, replace = TRUE)
cutage(ages, method = "distance", length = 5, maxage = 60, sep_zero = TRUE)
#> [1] 5-9 岁 55-59 岁 25-29 岁 40-44 岁 60+ 岁 5-9 岁 60+ 岁 30-34 岁
#> [9] 60+ 岁 15-19 岁 60+ 岁 35-39 岁 55-59 岁 15-19 岁 30-34 岁 60+ 岁
#> [17] 30-34 岁 60+ 岁 1-4 岁 60+ 岁 60+ 岁 1-4 岁 20-24 岁 5-9 岁
#> [25] 50-54 岁 60+ 岁 60+ 岁 40-44 岁 15-19 岁 40-44 岁 30-34 岁 5-9 岁
#> [33] 60+ 岁 60+ 岁 45-49 岁 15-19 岁 40-44 岁 60+ 岁 60+ 岁 50-54 岁
#> [41] 50-54 岁 60+ 岁 60+ 岁 60+ 岁 60+ 岁 60+ 岁 15-19 岁 60+ 岁
#> [49] 1-4 岁 45-49 岁 1-4 岁 10-14 岁 20-24 岁 45-49 岁 60+ 岁 60+ 岁
#> [57] 1-4 岁 35-39 岁 60+ 岁 60+ 岁 10-14 岁 40-44 岁 60+ 岁 60+ 岁
#> [65] 35-39 岁 60+ 岁 60+ 岁 60+ 岁 35-39 岁 60+ 岁 60+ 岁 30-34 岁
#> [73] 60+ 岁 60+ 岁 60+ 岁 45-49 岁 60+ 岁 20-24 岁 60+ 岁 5-9 岁
#> [81] 60+ 岁 35-39 岁 60+ 岁 30-34 岁 60+ 岁 60+ 岁 35-39 岁 60+ 岁
#> [89] 20-24 岁 40-44 岁 40-44 岁 60+ 岁 60+ 岁 40-44 岁 35-39 岁 35-39 岁
#> [97] 30-34 岁 60+ 岁 10-14 岁 60+ 岁 20-24 岁 60+ 岁 60+ 岁 60+ 岁
#> [105] 30-34 岁 25-29 岁 60+ 岁 45-49 岁 45-49 岁 60+ 岁 60+ 岁 60+ 岁
#> [113] 60+ 岁 60+ 岁 40-44 岁 35-39 岁 40-44 岁 60+ 岁 25-29 岁 10-14 岁
#> [121] 15-19 岁 60+ 岁 15-19 岁 60+ 岁 60+ 岁 60+ 岁 40-44 岁 5-9 岁
#> [129] 35-39 岁 60+ 岁 60+ 岁 60+ 岁 60+ 岁 10-14 岁 1-4 岁 15-19 岁
#> [137] 60+ 岁 10-14 岁 30-34 岁 25-29 岁 20-24 岁 60+ 岁 60+ 岁 15-19 岁
#> [145] 60+ 岁 35-39 岁 45-49 岁 30-34 岁 60+ 岁 25-29 岁 45-49 岁 10-14 岁
#> [153] 50-54 岁 25-29 岁 60+ 岁 45-49 岁 60+ 岁 45-49 岁 50-54 岁 5-9 岁
#> [161] 60+ 岁 10-14 岁 15-19 岁 55-59 岁 1-4 岁 60+ 岁 30-34 岁 45-49 岁
#> [169] 60+ 岁 60+ 岁 40-44 岁 5-9 岁 40-44 岁 20-24 岁 60+ 岁 15-19 岁
#> [177] 60+ 岁 60+ 岁 55-59 岁 5-9 岁 50-54 岁 10-14 岁 5-9 岁 1-4 岁
#> [185] 25-29 岁 45-49 岁 60+ 岁 60+ 岁 25-29 岁 60+ 岁 10-14 岁 5-9 岁
#> [193] 60+ 岁 60+ 岁 60+ 岁 60+ 岁 55-59 岁 60+ 岁 25-29 岁 60+ 岁
#> 14 Levels: 0 岁 1-4 岁 5-9 岁 10-14 岁 15-19 岁 20-24 岁 25-29 岁 ... 60+ 岁
# Custom breaks
cutage(ages, method = "interval", breaks = c(0, 15, 30, 45, 60, 75, Inf))
#> [1] 0-14 岁 45-59 岁 15-29 岁 30-44 岁 75+ 岁 0-14 岁 75+ 岁 30-44 岁
#> [9] 75+ 岁 15-29 岁 60-74 岁 30-44 岁 45-59 岁 15-29 岁 30-44 岁 75+ 岁
#> [17] 30-44 岁 60-74 岁 0-14 岁 60-74 岁 75+ 岁 0-14 岁 15-29 岁 0-14 岁
#> [25] 45-59 岁 75+ 岁 75+ 岁 30-44 岁 15-29 岁 30-44 岁 30-44 岁 0-14 岁
#> [33] 60-74 岁 60-74 岁 45-59 岁 15-29 岁 30-44 岁 75+ 岁 60-74 岁 45-59 岁
#> [41] 45-59 岁 60-74 岁 60-74 岁 75+ 岁 75+ 岁 75+ 岁 15-29 岁 75+ 岁
#> [49] 0-14 岁 45-59 岁 0-14 岁 0-14 岁 15-29 岁 45-59 岁 60-74 岁 75+ 岁
#> [57] 0-14 岁 30-44 岁 60-74 岁 75+ 岁 0-14 岁 30-44 岁 60-74 岁 60-74 岁
#> [65] 30-44 岁 60-74 岁 75+ 岁 75+ 岁 30-44 岁 75+ 岁 75+ 岁 30-44 岁
#> [73] 75+ 岁 60-74 岁 75+ 岁 45-59 岁 60-74 岁 15-29 岁 60-74 岁 0-14 岁
#> [81] 60-74 岁 30-44 岁 75+ 岁 30-44 岁 75+ 岁 60-74 岁 30-44 岁 75+ 岁
#> [89] 15-29 岁 30-44 岁 30-44 岁 75+ 岁 75+ 岁 30-44 岁 30-44 岁 30-44 岁
#> [97] 30-44 岁 75+ 岁 0-14 岁 75+ 岁 15-29 岁 75+ 岁 75+ 岁 75+ 岁
#> [105] 30-44 岁 15-29 岁 75+ 岁 45-59 岁 45-59 岁 60-74 岁 75+ 岁 75+ 岁
#> [113] 75+ 岁 75+ 岁 30-44 岁 30-44 岁 30-44 岁 75+ 岁 15-29 岁 0-14 岁
#> [121] 15-29 岁 75+ 岁 15-29 岁 75+ 岁 75+ 岁 75+ 岁 30-44 岁 0-14 岁
#> [129] 30-44 岁 60-74 岁 75+ 岁 60-74 岁 75+ 岁 0-14 岁 0-14 岁 15-29 岁
#> [137] 75+ 岁 0-14 岁 30-44 岁 15-29 岁 15-29 岁 75+ 岁 60-74 岁 15-29 岁
#> [145] 60-74 岁 30-44 岁 45-59 岁 30-44 岁 75+ 岁 15-29 岁 45-59 岁 0-14 岁
#> [153] 45-59 岁 15-29 岁 60-74 岁 45-59 岁 75+ 岁 45-59 岁 45-59 岁 0-14 岁
#> [161] 75+ 岁 0-14 岁 15-29 岁 45-59 岁 0-14 岁 75+ 岁 30-44 岁 45-59 岁
#> [169] 60-74 岁 75+ 岁 30-44 岁 0-14 岁 30-44 岁 15-29 岁 75+ 岁 15-29 岁
#> [177] 75+ 岁 75+ 岁 45-59 岁 0-14 岁 45-59 岁 0-14 岁 0-14 岁 0-14 岁
#> [185] 15-29 岁 45-59 岁 60-74 岁 60-74 岁 15-29 岁 60-74 岁 0-14 岁 0-14 岁
#> [193] 75+ 岁 75+ 岁 75+ 岁 75+ 岁 45-59 岁 75+ 岁 15-29 岁 75+ 岁
#> Levels: 0-14 岁 15-29 岁 30-44 岁 45-59 岁 60-74 岁 75+ 岁
# Quantile-based grouping
cutage(ages, method = "quantile")
#> [1] 1-24.75 岁 49-78.25 岁 1-24.75 岁 25.75-48 岁 79.25-100 岁
#> [6] 1-24.75 岁 79.25-100 岁 25.75-48 岁 79.25-100 岁 1-24.75 岁
#> [11] 49-78.25 岁 25.75-48 岁 49-78.25 岁 1-24.75 岁 25.75-48 岁
#> [16] 79.25-100 岁 25.75-48 岁 49-78.25 岁 1-24.75 岁 49-78.25 岁
#> [21] 79.25-100 岁 1-24.75 岁 1-24.75 岁 1-24.75 岁 49-78.25 岁
#> [26] 79.25-100 岁 79.25-100 岁 25.75-48 岁 1-24.75 岁 25.75-48 岁
#> [31] 25.75-48 岁 1-24.75 岁 49-78.25 岁 49-78.25 岁 25.75-48 岁
#> [36] 1-24.75 岁 25.75-48 岁 79.25-100 岁 49-78.25 岁 49-78.25 岁
#> [41] 49-78.25 岁 49-78.25 岁 49-78.25 岁 79.25-100 岁 79.25-100 岁
#> [46] 79.25-100 岁 1-24.75 岁 79.25-100 岁 1-24.75 岁 25.75-48 岁
#> [51] 1-24.75 岁 1-24.75 岁 1-24.75 岁 25.75-48 岁 49-78.25 岁
#> [56] 79.25-100 岁 1-24.75 岁 25.75-48 岁 49-78.25 岁 49-78.25 岁
#> [61] 1-24.75 岁 25.75-48 岁 49-78.25 岁 49-78.25 岁 25.75-48 岁
#> [66] 49-78.25 岁 49-78.25 岁 79.25-100 岁 25.75-48 岁 79.25-100 岁
#> [71] 79.25-100 岁 25.75-48 岁 79.25-100 岁 49-78.25 岁 79.25-100 岁
#> [76] 25.75-48 岁 49-78.25 岁 1-24.75 岁 49-78.25 岁 1-24.75 岁
#> [81] 49-78.25 岁 25.75-48 岁 79.25-100 岁 25.75-48 岁 79.25-100 岁
#> [86] 49-78.25 岁 25.75-48 岁 79.25-100 岁 1-24.75 岁 25.75-48 岁
#> [91] 25.75-48 岁 79.25-100 岁 79.25-100 岁 25.75-48 岁 25.75-48 岁
#> [96] 25.75-48 岁 25.75-48 岁 79.25-100 岁 1-24.75 岁 79.25-100 岁
#> [101] 1-24.75 岁 79.25-100 岁 49-78.25 岁 79.25-100 岁 25.75-48 岁
#> [106] 25.75-48 岁 79.25-100 岁 49-78.25 岁 25.75-48 岁 49-78.25 岁
#> [111] 79.25-100 岁 79.25-100 岁 79.25-100 岁 <NA> 25.75-48 岁
#> [116] 25.75-48 岁 25.75-48 岁 79.25-100 岁 1-24.75 岁 1-24.75 岁
#> [121] 1-24.75 岁 <NA> 1-24.75 岁 79.25-100 岁 79.25-100 岁
#> [126] 79.25-100 岁 25.75-48 岁 1-24.75 岁 25.75-48 岁 49-78.25 岁
#> [131] 79.25-100 岁 49-78.25 岁 79.25-100 岁 1-24.75 岁 1-24.75 岁
#> [136] 1-24.75 岁 49-78.25 岁 1-24.75 岁 25.75-48 岁 25.75-48 岁
#> [141] 1-24.75 岁 79.25-100 岁 49-78.25 岁 1-24.75 岁 49-78.25 岁
#> [146] 25.75-48 岁 49-78.25 岁 25.75-48 岁 49-78.25 岁 25.75-48 岁
#> [151] 25.75-48 岁 1-24.75 岁 49-78.25 岁 25.75-48 岁 49-78.25 岁
#> [156] 49-78.25 岁 49-78.25 岁 25.75-48 岁 49-78.25 岁 1-24.75 岁
#> [161] 49-78.25 岁 1-24.75 岁 1-24.75 岁 49-78.25 岁 1-24.75 岁
#> [166] 79.25-100 岁 25.75-48 岁 25.75-48 岁 49-78.25 岁 79.25-100 岁
#> [171] 25.75-48 岁 1-24.75 岁 25.75-48 岁 1-24.75 岁 79.25-100 岁
#> [176] 1-24.75 岁 79.25-100 岁 79.25-100 岁 49-78.25 岁 1-24.75 岁
#> [181] 49-78.25 岁 1-24.75 岁 1-24.75 岁 1-24.75 岁 25.75-48 岁
#> [186] 49-78.25 岁 49-78.25 岁 49-78.25 岁 1-24.75 岁 49-78.25 岁
#> [191] 1-24.75 岁 1-24.75 岁 79.25-100 岁 49-78.25 岁 79.25-100 岁
#> [196] 79.25-100 岁 49-78.25 岁 79.25-100 岁 25.75-48 岁 79.25-100 岁
#> Levels: 1-24.75 岁 25.75-48 岁 49-78.25 岁 79.25-100 岁