This function calculates z-scores for the eight anthropometric indicators, weight-for- age, length/height-for-age, weight-for-length/height, body mass index (BMI)-for-age, head circumference-for-age, arm circumference-for-age, triceps skinfold-for-age and subscapular skinfold-for-age based on the WHO Child Growth Standards.
anthro_zscores(
sex,
age = NA_real_,
is_age_in_month = FALSE,
weight = NA_real_,
lenhei = NA_real_,
measure = NA_character_,
headc = NA_real_,
armc = NA_real_,
triskin = NA_real_,
subskin = NA_real_,
oedema = "n"
)
A numeric or text variable containing gender information. If it is numeric, its values must be: 1 for males and 2 for females. If it is character, it must be "m" or "M" for males and "f" or "F" for females. No z-scores will be calculated if sex is missing.
A numeric variable containing age information; age can be in either days or months (if optional argument is_age_in_month is set to TRUE). An exact age in days is expected and should not be rounded if age is in months. Age-related z-scores will NOT be calculated if age is missing (NA).
A logical flag; if TRUE, variable age unit will be treated as months. The function converts it to days by dividing age by 30.4375 and rounding it to integer so that reference tables can be used. When unspecified, the default value FALSE is used and age unit is treated as days.
A numeric variable containing body weight information, which must be in kilograms. Weight-related z-scores are not calculated if body weight is missing.
A numeric variable containing length (recumbent length) or height (standing height) information, which must be in centimeters. Length/height-related z-scores will not be calculated if lenhei is missing. For children with age below 24 months (i.e. below 731 days) and standing height measured, the function converts it to recumbent length by adding 0.7 cm; and for children with age equal and above 24 months and measured in recumbent length, the function converts it to standing height by subtracting 0.7 cm. This way all the z-scores calculated by this function are length-based for children below 24 months, and height-based otherwise. This converted length/height according to age is assigned to the variable clenhei in the resulting data.frame.
A character variable indicating whether recumbent length or standing height was measured for each observation. The values of this variable must be "L" or "l" for recumbent length, and "H" or "h" for standing height. Although it is highly recommended that this variable is provided according to the measurements taken in the survey, it is possible to run the analysis without specifying this variable. If unspecified, the default vector with all missing values is used. The function imputes the missing values according to the following algorithm:
If age is not missing, then it is recumbent length if age below 24 months (731 days), and standing height if age equal and above 24 months.
If age is missing, then it is recumbent length if measurement < 87 cm and standing height if measurement >= 87 cm.
A numeric variable containing head circumference information, which must be in centimeters. Head circumference-for-age z-scores are not calculated if head circumference is missing.
A numeric variable containing arm circumference information, which must be in centimeters. Arm circumference-for-age z-scores are not calculated if arm circumference is missing.
A numeric variable containing triceps skinfold information, which must be in millimeters. Triceps skinfold-for-age z-scores are not calculated if triceps skinfold is missing.
A numeric variable containing subscapular skinfold information, which must be in millimeters. Subscapular skinfold-for-age z-scores are not calculated if subscapular skinfold is missing.
The values of this character variable must be "n", "N" or "2"
for non-oedema, and "y", "Y", "1" for oedema. Although it is highly
recommended that this variable is provided by the survey,
it is possible to run
the analysis without specifying this variable. If unspecified,
the default vector of all "n" with values considered as
non-oedema is used. Missing values will be
treated as non-oedema. For oedema, weight related z-scores
(zwei, zwfl and zbmi) are NOT calculated (set to missing),
BUT they are treated as being < -3 SD in the weight-related
indicator prevalence (anthro_prevalence
)
estimation.
A data.frame with three types of columns. Columns starting with a "c" are cleaned versions of the input arguments. Columns beginning with a "z" are the respective z-scores and columns prefixed by a "f" indicate if these z-scores are flagged (integers). The number of rows is given by the length of the input arguments.
The following columns are returned:
clenhei
converted length/height for deriving z-score
cbmi
BMI value based on length/height given by clenhei
zlen
Length/Height-for-age z-score
flen
1, if abs(zlen) > 6
zwei
Weight-for-age z-score
fwei
1, if zwei < -6
or zwei > 5
zwfl
Weight-for-length/height z-score
fwfl
1, if abs(zwfl) > 5
zbmi
BMI-for-age z-score
fbmi
1, if abs(zbmi) > 5
zhc
Head circumference-for-age z-score
fhc
1, if abs(zhc) > 5
zac
Arm circumference-for-age z-score
fac
1, if abs(zac) > 5
zts
Triceps skinfold-for-age z-score
fts
1, if abs(zts) > 5
zss
Subscapular skinfold-for-age z-score
fss
1, if abs(zss) > 5
If not all parameter values have equal length, parameter values will be
repeated to match the maximum length of all arguments except
is_age_in_month
using rep_len
. This happens without warnings.
Z-scores are only computed for children younger than 60 months (age in months < 60)
WHO Multicentre Growth Reference Study Group (2006). WHO Child Growth Standards: Length/height-for-age, weight-for-age, weight-for-length, weight-for-height and body mass index-for-age: Methods and development. Geneva: World Health Organization; pp 312. (web site: http://www.who.int/childgrowth/publications/en/ )
WHO Multicentre Growth Reference Study Group (2007). WHO Child Growth Standards: Head circumference-for-age, arm circumference-for-age, triceps skinfold-for-age and subscapular skinfold-for-age: Methods and development. Geneva: World Health Organization; pp 217. (web site: http://www.who.int/childgrowth/publications/en/ )
# you can either use the function to compute zscores for specific values
anthro_zscores(sex = "f", age = 10, is_age_in_month = TRUE, weight = 10)
#> clenhei cbmi cmeasure csex zlen flen zwei fwei zwfl fwfl zbmi fbmi zhc fhc
#> 1 NA NA <NA> 2 NA NA 1.33 0 NA NA NA NA NA NA
#> zac fac zts fts zss fss
#> 1 NA NA NA NA NA NA
# values will be recycled so not all input values need to be of the same length
anthro_zscores(sex = "f", age = c(10, 20, 30), weight = 10)
#> clenhei cbmi cmeasure csex zlen flen zwei fwei zwfl fwfl zbmi fbmi zhc fhc
#> 1 NA NA <NA> 2 NA NA 10.46 1 NA NA NA NA NA NA
#> 2 NA NA <NA> 2 NA NA 9.14 1 NA NA NA NA NA NA
#> 3 NA NA <NA> 2 NA NA 8.01 1 NA NA NA NA NA NA
#> zac fac zts fts zss fss
#> 1 NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA
#> 3 NA NA NA NA NA NA
# or use it with a compute dataset
if (FALSE) {
your_data_set <- read.csv("<your survey>.csv")
with(
your_data_set,
anthro_zscores(
sex = sex, age = age_in_days,
weight = weight, lenhei = lenhei
)
)
}