Title: | Determining Vitamin and Mineral Status of Populations |
---|---|
Description: | Vitamin and mineral deficiencies continue to be a significant public health problem. This is particularly critical in developing countries where deficiencies to vitamin A, iron, iodine, and other micronutrients lead to adverse health consequences. Cross-sectional surveys are helpful in answering questions related to the magnitude and distribution of deficiencies of selected vitamins and minerals. This package provides tools for calculating and determining select vitamin and mineral deficiencies based on World Health Organization (WHO) guidelines found at <https://www.who.int/teams/nutrition-and-food-safety/databases/vitamin-and-mineral-nutrition-information-system>. |
Authors: | Ernest Guevarra [aut, cre, cph]
|
Maintainer: | Ernest Guevarra <[email protected]> |
License: | GPL (>= 3) |
Version: | 0.1.1.9000 |
Built: | 2025-02-15 05:55:48 UTC |
Source: | https://github.com/nutriverse/micronutr |
Based on inflammation status, correct serum ferritin values as described in Namaste, S. M., Rohner, F., Huang, J., Bhushan, N. L., Flores-Ayala, R., Kupka, R., Mei, Z., Rawat, R., Williams, A. M., Raiten, D. J., Northrop-Clewes, C. A., & Suchdev, P. S. (2017). Adjusting ferritin concentrations for inflammation: Biomarkers Reflecting Inflammation and Nutritional Determinants of Anemia (BRINDA) project. The American journal of clinical nutrition, 106(Suppl 1), 359S–371S. https://doi.org/10.3945/ajcn.116.141762
correct_ferritin(crp = NULL, agp = NULL, ferritin = NULL)
correct_ferritin(crp = NULL, agp = NULL, ferritin = NULL)
crp |
A numeric value or numeric vector for serum c-reactive protein in micrograms per litre (microgram/l). |
agp |
A numeric value or numeric vector for serum alpha(1)-acid-glycoprotein in micrograms per litre (microgram/l). |
ferritin |
A numeric value or numeric vector for serum ferritin in micrograms per litre (microgram/l). |
A numeric value or numeric vector for corrected serum ferritin in micrograms per litre (microgram/l).
Nicholus Tint Zaw and Ernest Guevarra
correct_ferritin( crp = mnData$crp, ferritin = mnData$ferritin )
correct_ferritin( crp = mnData$crp, ferritin = mnData$ferritin )
Correct haemoglobin based on altitude and/or smoking status
correct_hb(hb = NULL, alt = NULL, smoke = NULL)
correct_hb(hb = NULL, alt = NULL, smoke = NULL)
hb |
A numeric value or numeric vector of serum haemoglobin concentration/s in grams per litre (g/l) |
alt |
Altitude, in metres, above sea level |
smoke |
Simple integer code for smoking status classification: 0 = non-smoker; 1 = any smoker or half packet up to less than 1 packet a day; 2 = 1 up to less than 2 packets a day; 3 = 2 or more packets a day. |
A numeric value or numeric vector of corrected serum haemoglobin concentration/s in grams per litre (g/l)
Ernest Guevarra
correct_hb(hb = mnData$hb[1], alt = mnData$altitude[1], smoke = 1)
correct_hb(hb = mnData$hb[1], alt = mnData$altitude[1], smoke = 1)
This set of functions identifies haemoglobinaemia in specific target groups such as children under 5 years (u5), children 5-11 years of age (5to11), children 12-14 years of age (12to14), non-pregnant women 15 years and above (np_women), pregnant women (pregnant), and men (men).
detect_anaemia_u5(hb = NULL, label = TRUE) detect_anaemia_5to11(hb = NULL, label = TRUE) detect_anaemia_12to14(hb = NULL, label = TRUE) detect_anaemia_np_women(hb = NULL, label = TRUE) detect_anaemia_pregnant(hb = NULL, label = TRUE) detect_anaemia_men(hb = NULL, label = TRUE) detect_anaemia( hb = NULL, group = c("u5", "5to11", "12to14", "np_women", "pregnant", "men"), label = TRUE )
detect_anaemia_u5(hb = NULL, label = TRUE) detect_anaemia_5to11(hb = NULL, label = TRUE) detect_anaemia_12to14(hb = NULL, label = TRUE) detect_anaemia_np_women(hb = NULL, label = TRUE) detect_anaemia_pregnant(hb = NULL, label = TRUE) detect_anaemia_men(hb = NULL, label = TRUE) detect_anaemia( hb = NULL, group = c("u5", "5to11", "12to14", "np_women", "pregnant", "men"), label = TRUE )
hb |
A numeric value or numeric vector containing haemoglobin values in grams per litre (g/L). |
label |
Logical. Should labels be used to classify haemoglobinaemia? If TRUE (default), status is classified as "no anaemia", "mild anaemia", "moderate anaemia", or "severe anaemia". If FALSE, simple integer codes are returned: 0 for no anaemia; 1 for mild anaemia; 2 for moderate anaemia; 3 for severe anaemia. |
group |
A character value specifying the population target group to identify haemoglobinaemia from. Can be either one of u5, 5to11, 11to14, np_women, pregnant, or men. Default is u5. |
If label
is TRUE, a character value or character vector of
haemoglobinaemia status classification (can be either "severe anaemia" or
"moderate anaemia", "mild anaemia", or "no anaemia"). If label
is FALSE,
an integer value or integer vector of haemoglobinaemia status
classification (0 = no anaemia; 1 = mild anaemia; 2 = moderate anaemia;
3 = severe anaemia)
Nicholus Tint Zaw and Ernest Guevarra
x <- subset(mnData, age < 5) detect_anaemia_u5(hb = x$hb * 10) detect_anaemia_u5(hb = x$hb * 10, label = FALSE) detect_anaemia(hb = x$hb * 10) detect_anaemia(hb = x$hb * 10, label = FALSE)
x <- subset(mnData, age < 5) detect_anaemia_u5(hb = x$hb * 10) detect_anaemia_u5(hb = x$hb * 10, label = FALSE) detect_anaemia(hb = x$hb * 10) detect_anaemia(hb = x$hb * 10, label = FALSE)
Given laboratory values for serum c-reactive protein (CRP) and/or serum alpha(1)-acid-glycoprotein (AGP), the inflammation status of a subject can be determined based on cut-off values described in Namaste, S. M., Rohner, F., Huang, J., Bhushan, N. L., Flores-Ayala, R., Kupka, R., Mei, Z., Rawat, R., Williams, A. M., Raiten, D. J., Northrop-Clewes, C. A., & Suchdev, P. S. (2017). Adjusting ferritin concentrations for inflammation: Biomarkers Reflecting Inflammation and Nutritional Determinants of Anemia (BRINDA) project. The American journal of clinical nutrition, 106(Suppl 1), 359S–371S. https://doi.org/10.3945/ajcn.116.141762
detect_inflammation(crp = NULL, agp = NULL, label = TRUE) detect_inflammation_crp(crp = NULL, label = TRUE) detect_inflammation_agp(agp = NULL, label = TRUE)
detect_inflammation(crp = NULL, agp = NULL, label = TRUE) detect_inflammation_crp(crp = NULL, label = TRUE) detect_inflammation_agp(agp = NULL, label = TRUE)
crp |
A numeric value or numeric vector of c-reactive protein (crp) values in micrograms per litre (microgram/l). |
agp |
A numeric value or numeric vector of alpha(1)-acid-glycoprotein (agp) values in micrograms per litre (microgram/l). |
label |
Logical. Should labels be used to classify inflammation status? If TRUE (default), status is classified as "no inflammation" or "inflammation" based on either CRP or AGP or status is classified as "no inflammation", "incubation", "early convalescence", or "late convalescence" based on both CRP and AGP. If FALSE, simple integer codes are returned: 0 for no inflammation and 1 for inflammation based on either CRP or AGP; 0 for no inflammation, 1 for incubation, 2 for early convalescence, or 3 for late convalescence. |
If label
is TRUE, a character value or character vector of
inflammation classification based on c-reactive protein (CRP) and/or
alpha(1)-acid-glycoprotein (AGP) values. If label
is FALSE, an integer
value or vector of inflammation classification.
Nicholus Tint Zaw and Ernest Guevarra
## Detect inflammation by AGP detect_inflammation_agp(2) detect_inflammation_agp(2, label = FALSE) ## Detect inflammation by CRP detect_inflammation_crp(2) detect_inflammation(crp = mnData$crp) detect_inflammation(crp = mnData$crp, label = FALSE) ## Detect inflammation by AGP and CRP detect_inflammation(crp = 2, agp = 2) detect_inflammation(crp = 2, agp = 2, label = FALSE)
## Detect inflammation by AGP detect_inflammation_agp(2) detect_inflammation_agp(2, label = FALSE) ## Detect inflammation by CRP detect_inflammation_crp(2) detect_inflammation(crp = mnData$crp) detect_inflammation(crp = mnData$crp, label = FALSE) ## Detect inflammation by AGP and CRP detect_inflammation(crp = 2, agp = 2) detect_inflammation(crp = 2, agp = 2, label = FALSE)
Determining population level iodine intake status using mean urinary iodine concentration for school age children (general), pregnant women (pregnant), or lactating women with children under 2 years old (lactating).
detect_iodine( iodine = NULL, group = c("general", "pregnant", "lactating"), label = TRUE ) detect_iodine_general(iodine = NULL, label = TRUE) detect_iodine_pregnant(iodine = NULL, label = TRUE) detect_iodine_lactating(iodine = NULL, label = TRUE)
detect_iodine( iodine = NULL, group = c("general", "pregnant", "lactating"), label = TRUE ) detect_iodine_general(iodine = NULL, label = TRUE) detect_iodine_pregnant(iodine = NULL, label = TRUE) detect_iodine_lactating(iodine = NULL, label = TRUE)
iodine |
A numeric value or numeric vector of median urinary iodine concentration (microgram/L) of the population or populations of interest. |
group |
The population group of interest. Either school age children (general), pregnant women (pregnant), or lactating women with children under 2 years old (lactating) |
label |
Logical. Should labels be used to classify iodine intake status? If TRUE (default), status is classified descriptively as insufficient, adequate, excessive, or the like. If FALSE, simple integer codes are returned. |
If label
is TRUE, a character value or character vector of iodine
intake status. If label
is FALSE, an integer value or integer vector of
iodine intake status.
Nicholus Tint Zaw and Ernest Guevarra
detect_iodine(iodine = 10)
detect_iodine(iodine = 10)
Given serum ferritin values, determine iron storage status.
detect_iron_deficiency_u5(ferritin = NULL, label = TRUE) detect_iron_deficiency_5over(ferritin = NULL, label = TRUE) detect_iron_deficiency(ferritin = NULL, group = c("u5", "5over"), label = TRUE) detect_iron_deficiency_qualitative( ferritin = NULL, inflammation = NULL, group = c("u5", "5over"), label = TRUE )
detect_iron_deficiency_u5(ferritin = NULL, label = TRUE) detect_iron_deficiency_5over(ferritin = NULL, label = TRUE) detect_iron_deficiency(ferritin = NULL, group = c("u5", "5over"), label = TRUE) detect_iron_deficiency_qualitative( ferritin = NULL, inflammation = NULL, group = c("u5", "5over"), label = TRUE )
ferritin |
A numeric value or numeric vector of serum ferritin level in micrograms per litre (microgram/L). |
label |
Logical. Should labels be used to classify iron storage status? If TRUE (default), status is classified as "no iron deficiency" or "iron deficiency". If FALSE, simple integer codes are returned: 0 for no iron deficiency and 1 for iron deficiency. |
group |
A character value specifying the population target group to determine iron status from. Can be either for under 5 year old ("u5") or 5 years and over ("5over"). Default to "u5". |
inflammation |
Logical value or vector. Is subject in inflammation or not? |
If label
is TRUE, a character value or character vector of iron
status classification (can be either "iron deficiency" or "no iron
deficiency"). If label
is FALSE, an integer value or integer vector of
iron status classification (0 = no iron deficiency; 1 = iron deficiency)
Nicholus Tint Zaw and Ernest Guevarra
# Iron storage status based on CRP only ferritin_corrected <- correct_ferritin( crp = mnData$crp, ferritin = mnData$ferritin ) detect_iron_deficiency(ferritin_corrected) # Iron storage status based on AGP only ferritin_corrected <- correct_ferritin( agp = 2, ferritin = mnData$ferritin[1] ) detect_iron_deficiency(ferritin_corrected) # Iron storage status based on CRP and AGP ferritin_corrected <- correct_ferritin( crp = mnData$crp[1], agp = 2, ferritin = mnData$ferritin[1] ) detect_iron_deficiency(ferritin_corrected) # Iron storage status - qualitative detect_iron_deficiency_qualitative( ferritin = 3, inflammation = TRUE ) detect_iron_deficiency_qualitative( ferritin = c(2, 3, 5), inflammation = c(TRUE, FALSE, TRUE) )
# Iron storage status based on CRP only ferritin_corrected <- correct_ferritin( crp = mnData$crp, ferritin = mnData$ferritin ) detect_iron_deficiency(ferritin_corrected) # Iron storage status based on AGP only ferritin_corrected <- correct_ferritin( agp = 2, ferritin = mnData$ferritin[1] ) detect_iron_deficiency(ferritin_corrected) # Iron storage status based on CRP and AGP ferritin_corrected <- correct_ferritin( crp = mnData$crp[1], agp = 2, ferritin = mnData$ferritin[1] ) detect_iron_deficiency(ferritin_corrected) # Iron storage status - qualitative detect_iron_deficiency_qualitative( ferritin = 3, inflammation = TRUE ) detect_iron_deficiency_qualitative( ferritin = c(2, 3, 5), inflammation = c(TRUE, FALSE, TRUE) )
Determine altitude correction factor for haemoglobin
get_altitude_correction(alt = NULL)
get_altitude_correction(alt = NULL)
alt |
Altitude, in metres, above sea level |
A numeric value or numeric vector of correction factor/s for haemoglobin based on altitude
Ernest Guevarra
get_altitude_correction(mnData$altitude)
get_altitude_correction(mnData$altitude)
Determine smoking status correction factor for haemoglobin
get_smoking_correction(smoke = NULL)
get_smoking_correction(smoke = NULL)
smoke |
Simple integer code for smoking status classification: 0 = non-smoker; 1 = any smoking or half packet up to less than 1 packet a day; 2 = 1 up to less than 2 packets a day; 3 = 2 or more packets a day. |
A numeric value or numeric vector of correction factor/s for haemoglobin based on smoking status
Ernest Guevarra
get_smoking_correction(smoke = 1)
get_smoking_correction(smoke = 1)
This sample dataset is from a micronutrient survey in a country in East Africa with 19449 observations and 9 variables described below.
mnData
mnData
A tibble with 9 columns and 19449 rows.
Variables | Description |
psu | Primary sampling unit identifier |
sex | Sex (1 = Male; 2 = Female) |
age | Age (in years) |
group | Group classification |
hb | Haemoglobin values (g/L) |
calcium | Serum calcium values () |
crp | Serum c-reactive protein (microgram/l) |
ferritin | Serum ferritin () |
iodine | Urine iodine () |
altitude | Altitude of sampling location above sea level (metres) |
From a micronutrient survey in a country in East Africa
mnData
mnData