Skip to contents

Categorizes individuals based on their Body Mass Index (BMI) according to standard WHO obesity classification criteria. Validates age to ensure appropriate application of adult BMI categories.

Usage

bmic(bmi, age)

Arguments

bmi

Numeric vector of baseline Body Mass Index values (kg/m²)

age

Numeric vector of baseline age in years. the function will issue warnings for individuals under 18 years old, as adult BMI categories may not be appropriate for pediatric populations

Value

Integer vector of obesity categories (1-4). Returns -999 for missing BMI values.

Details

BMI Categories:

  • 1: Underweight: BMI < 18.5 kg/m²

  • 2: Normal weight: BMI 18.5 to < 25 kg/m²

  • 3: Overweight: BMI 25 to < 30 kg/m²

  • 4: Obese: BMI ≥ 30 kg/m²

Age Considerations: The function will warn if any individuals are under 18 years old, as standard adult BMI categories may not be appropriate for children and adolescents.

References

World Health Organization. https://www.who.int/news-room/fact-sheets/detail/obesity-and-overweight

See also

bmi for calculating BMI from weight and height, agec for age categorization

Other body_composition: aibw(), bmi(), bsa(), dubois_bsa(), ibw(), mosteller_bsa()

Examples

patients <- data.frame(
  ID = 1:6,
  AGE = c(25, 45, 17, 55, 30, 65),
  WEIGHT = c(60, 80, 70, 90, 75, 85),
  HEIGHT = c(165, 175, 170, 180, 160, 175)
)

dplyr::mutate(
 patients,
  BMI = bmi(WEIGHT, HEIGHT),
  BMIC = bmic(BMI, AGE)
)
#> Warning: There was 1 warning in `dplyr::mutate()`.
#>  In argument: `BMIC = bmic(BMI, AGE)`.
#> Caused by warning in `bmic()`:
#> ! Age contains values less than 18 years. Adult BMI categories may not be appropriate for pediatric populations.
#>   ID AGE WEIGHT HEIGHT      BMI BMIC
#> 1  1  25     60    165 22.03857    2
#> 2  2  45     80    175 26.12245    3
#> 3  3  17     70    170 24.22145    2
#> 4  4  55     90    180 27.77778    3
#> 5  5  30     75    160 29.29687    3
#> 6  6  65     85    175 27.75510    3