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