Derive Reference Range Indicator
derive_var_anrind(
dataset,
signif_dig = get_admiral_option("signif_digits"),
use_a1hia1lo = FALSE
)Input dataset
ANRLO, ANRHI, and AVAL are expected and if use_a1hia1lo is set to TRUE,
A1LO and A1H1 are expected as well.
none
Number of significant digits to use when comparing values.
Significant digits used to avoid floating point discrepancies when comparing numeric values. See blog: How admiral handles floating points
get_admiral_option("signif_digits")
A logical value indicating whether to use A1H1 and A1LO in
the derivation of ANRIND.
FALSE
The input dataset with additional column ANRIND
In the case that A1H1 and A1LO are to be used, ANRIND is set to:
"NORMAL" if AVAL is greater or equal ANRLO and less than
or equal ANRHI; or if AVAL is greater than or equal ANRLO and ANRHI
is missing; or if AVAL is less than or equal ANRHI and ANRLO is
missing
"LOW" if AVAL is less than ANRLO and either A1LO is missing or AVAL
is greater than or equal A1LO
"HIGH" if AVAL is greater than ANRHI and either A1HI is missing or AVAL
is less than or equal A1HI
"LOW LOW" if AVAL is less than A1LO
"HIGH HIGH" if AVAL is greater than A1HI
In the case that A1H1 and A1LO are not to be used, ANRIND is set to:
"NORMAL" if AVAL is greater or equal ANRLO and less than
or equal ANRHI; or if AVAL is greater than or equal ANRLO and ANRHI
is missing; or if AVAL is less than or equal ANRHI and ANRLO is
missing
"LOW" if AVAL is less than ANRLO
"HIGH" if AVAL is greater than ANRHI
BDS-Findings Functions that returns variable appended to dataset:
derive_basetype_records(),
derive_var_analysis_ratio(),
derive_var_atoxgr(),
derive_var_atoxgr_dir(),
derive_var_base(),
derive_var_chg(),
derive_var_ontrtfl(),
derive_var_pchg(),
derive_var_shift(),
derive_vars_crit_flag()
library(tibble)
library(dplyr, warn.conflicts = FALSE)
vs <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVAL, ~ANRLO, ~ANRHI, ~A1LO, ~A1HI,
"P01", "PUL", 70, 60, 100, 40, 110,
"P01", "PUL", 57, 60, 100, 40, 110,
"P01", "PUL", 60, 60, 100, 40, 110,
"P01", "DIABP", 102, 60, 80, 40, 90,
"P02", "PUL", 109, 60, 100, 40, 110,
"P02", "PUL", 100, 60, 100, 40, 110,
"P02", "DIABP", 80, 60, 80, 40, 90,
"P03", "PUL", 39, 60, 100, 40, 110,
"P03", "PUL", 40, 60, 100, 40, 110
)
vs %>% derive_var_anrind(use_a1hia1lo = TRUE)
#> # A tibble: 9 × 8
#> USUBJID PARAMCD AVAL ANRLO ANRHI A1LO A1HI ANRIND
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 P01 PUL 70 60 100 40 110 NORMAL
#> 2 P01 PUL 57 60 100 40 110 LOW
#> 3 P01 PUL 60 60 100 40 110 NORMAL
#> 4 P01 DIABP 102 60 80 40 90 HIGH HIGH
#> 5 P02 PUL 109 60 100 40 110 HIGH
#> 6 P02 PUL 100 60 100 40 110 NORMAL
#> 7 P02 DIABP 80 60 80 40 90 NORMAL
#> 8 P03 PUL 39 60 100 40 110 LOW LOW
#> 9 P03 PUL 40 60 100 40 110 LOW
vs %>% derive_var_anrind(use_a1hia1lo = FALSE)
#> # A tibble: 9 × 8
#> USUBJID PARAMCD AVAL ANRLO ANRHI A1LO A1HI ANRIND
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 P01 PUL 70 60 100 40 110 NORMAL
#> 2 P01 PUL 57 60 100 40 110 LOW
#> 3 P01 PUL 60 60 100 40 110 NORMAL
#> 4 P01 DIABP 102 60 80 40 90 HIGH
#> 5 P02 PUL 109 60 100 40 110 HIGH
#> 6 P02 PUL 100 60 100 40 110 NORMAL
#> 7 P02 DIABP 80 60 80 40 90 NORMAL
#> 8 P03 PUL 39 60 100 40 110 LOW
#> 9 P03 PUL 40 60 100 40 110 LOW