Skip to contents

The Nutrient Adequacy Ratio (NAR) represents the adequacy of an individual's usual intake relative to the Recommended Nutrient Intake (RNI):

$$NAR = min(Usual Intake / RNI, 1)$$

The Mean Adequacy Ratio (MAR) is the average of NARs across multiple nutrients:

$$MAR = (sum NAR_i) / n$$

This approach is widely used to assess the overall diet quality of individuals or population subgroups. Values are capped at 1 to prevent high intakes of one nutrient from compensating for inadequacies in others.

Usage

compute_nar(
  data,
  age_col,
  life_group,
  nutrients,
  bioavailability = "moderate",
  include_rni_values = TRUE
)

Arguments

data

A data frame or tibble containing dietary intake and age data.

age_col

Character scalar. Name of the column representing the individual's age (in years for adults and months for children).

life_group

Character scalar specifying the life-stage group. Must be one of "Female", "Male", "Child", "Pregnant", or "Lactating".

nutrients

A named character vector mapping nutrient names to their corresponding column names in the dataset. Example: c("Protein" = "Protein_g", "Iron" = "Iron_mg")

bioavailability

Character scalar specifying the assumed dietary bioavailability for iron and zinc. Must be one of "low", "moderate", or "high". Defaults to "moderate".

include_rni_values

Logical. If TRUE, the RNI columns are included in the output dataset. Defaults to TRUE.

Value

A tibble containing:

  • The original dataset columns.

  • Computed NAR columns for each nutrient (e.g., Female_Protein_g_adequacy_ratio).

  • Optional RNI columns for each nutrient (if include_rni_values = TRUE).

  • A summary column representing the life group–specific MAR (e.g., Female_mean_adequacy_ratio).

Details

This function calculates nutrient adequacy ratios (NARs) for individual nutrients and the mean adequacy ratio (MAR) across multiple nutrients using the Recommended Nutrient Intake (RNI) as reference values. It accommodates bioavailability adjustments for zinc and iron and automatically matches RNI values based on age and life-stage group.

How RNIs Are Determined:

  • For general nutrients (e.g., Vitamin A, vitamin C, folate etc), RNIs are retrieved from the internal .rni_reference() table based on life_group and age.

  • The function currently supports these nutrients: Vitamin A, Vitamin C, Vitamin D, Vitamin E, Thiamin, Riboflavin, Niacin, Vitamin B6, Folate, Vitamin B12, Calcium, Selenium, Iodine, Copper, Magnesium, Molybdenum, Phosphorus, Sodium, Potassium, Iron (bioavailability must be selected), Zinc (bioavailability must be selected).

  • For zinc and iron, bioavailability-adjusted RNIs are obtained using .get_zinc_rni() and .get_iron_rni(), respectively.

Units: Ensure that the intake units in your dataset correspond to those used in the RNI reference values (e.g., mg/day, µg/day, g/day).

Mean Adequacy Ratio (MAR):

  • Computed as the mean of all nutrient adequacy ratios per individual.

  • The column name includes the life group prefix (e.g., "Female_mean_adequacy_ratio").

References

FAO/WHO (2002). Human Vitamin and Mineral Requirements. Allen, L. et al. (2006). An Interactive 24-Hour Recall for Assessing the Adequacy of Iron and Zinc Intakes in Developing Countries. HarvestPlus Technical Monograph 8. Institute of Medicine (2006). Dietary Reference Intakes: The Essential Guide to Nutrient Requirements.

Examples

df <- tibble::tibble(
  age = c(10, 25, 35),
  Calcium_g = c(1000, 500, 800),
  Iron_mg = c(7, 12, 9)
)

nutrients <- c("Calcium" = "Calcium_g", "Iron" = "Iron_mg")

compute_nar(
  data = df,
  age_col = "age",
  life_group = "Female",
  nutrients = nutrients,
  bioavailability = "moderate",
  include_rni_values = TRUE
)
#> # A tibble: 3 × 8
#>     age Calcium_g Iron_mg Female_Calcium_g_rni Female_Calcium_g_adequacy_ratio
#>   <dbl>     <dbl>   <dbl>                <dbl>                           <dbl>
#> 1    10      1000       7                 1300                           0.769
#> 2    25       500      12                 1000                           0.5  
#> 3    35       800       9                 1000                           0.8  
#> # ℹ 3 more variables: Female_Iron_mg_rni <dbl>,
#> #   Female_Iron_mg_adequacy_ratio <dbl>, Female_mean_adequacy_ratio <dbl>