Converts measurements into age- or hgt-conditional standard deviation scores (SDS, Z-score) using one or more external reference distributions.
y2z(
y,
x,
refcode,
pkg = "centile",
verbose = FALSE,
dec = 3L,
rule = 1L,
tail_adjust = FALSE,
...
)A numerical vector with measurements`.
A vector containing length(y) values of the numerical covariate (typically
decimal age or height) at which conversion is desired. A scalar x will be
expanded to length(y).
A character vector with length(y) elements, each of which
is the name of a reference. Scalar refcode expands to length(y).
Alternatively, refcode may be an object of class reference, typically
produced by import_rif(). If NULL the procedure returns NA's.
The package containing the references in the R/sysdata.dta object.
The package needs to be loaded. The default pkg = "centile" searches in
the centile package.
Set to TRUE to turn on warnings
A scalar value indicating the number of decimals used to round the value. The default is 3 decimals.
an integer (of length 1 or 2) describing how interpolation
is to take place outside the interval [min(x), max(x)].
If rule is 1 then NAs are returned for such
points and if it is 2, the value at the closest data extreme
is used. Use, e.g., rule = 2:1, if the left and right side
extrapolation should differ.
Logical. If TRUE the procedure applies the WHO
method for tail adjustment under the LMS distribution. We do not recommend
this. The default is FALSE.
Not used.
A vector with length(y) elements containing the Z-scores.
The type of reference distribution is defined by the distribution field
of the study attribute in the reference. The function executes
transformations specified by the tx and ty fields before calculating the
Z-score.
Functions y2z() and z2y() functions are the inverse of each other.
# Weight SD 1 month old boy and girl of 4 KG using built-in WHO references
y <- c(4, 4)
x <- c(1/12, 1/12)
refcode <- c("who_2006_wgt_male_", "who_2006_wgt_female_")
y2z(y, x, refcode)
#> [1] -0.821 -0.332
# using external reference, for females only
fn <- system.file("testdata/nl_2009_wgt_female_nl.txt", package = "centile")
myref <- import_rif(fn)
head(myref)
#> # A tibble: 6 × 4
#> x L M S
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0.0192 1.20 3.66 0.115
#> 2 0.0383 1.17 3.83 0.115
#> 3 0.0575 1.15 4.01 0.115
#> 4 0.0767 1.13 4.18 0.115
#> 5 0.0958 1.11 4.35 0.115
#> 6 0.115 1.09 4.52 0.115
head(attr(myref, "study"))
#> name year yname sex sub distribution
#> "nl" "2009" "wgt" "female" "nl" "LMS"
y2z(y, x, myref)
#> [1] -0.486 -0.486