library(tibble)
library(rlang)
advs <- tribble(
~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT,
"01-101-1001", "WSTCIR", "Waist Circumference (cm)", 110, "cm", "SCREENING",
"01-101-1001", "WSTCIR", "Waist Circumference (cm)", 108, "cm", "WEEK 2",
"01-101-1001", "WSTCIR", "Waist Circumference (cm)", 107, "cm", "WEEK 3",
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 125, "cm", "SCREENING",
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 124, "cm", "WEEK 2",
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 123, "cm", "WEEK 3",
"01-101-1002", "WSTCIR", "Waist Circumference (cm)", 120, "cm", "SCREENING",
"01-101-1002", "WSTCIR", "Waist Circumference (cm)", 118, "cm", "WEEK 2",
"01-101-1002", "WSTCIR", "Waist Circumference (cm)", 117, "cm", "WEEK 3",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 135, "cm", "SCREENING",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 133, "cm", "WEEK 2",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 132, "cm", "WEEK 3"
)
derive_param_waisthip(
advs,
by_vars = exprs(USUBJID, VISIT),
wstcir_code = "WSTCIR",
hipcir_code = "HIPCIR",
set_values_to = exprs(
PARAMCD = "WAISTHIP",
PARAM = "Waist to Hip Ratio"
),
get_unit_expr = admiral::extract_unit(PARAM)
)
# Only adding Waist to Hip Ratio at certain visits
derive_param_waisthip(
advs,
by_vars = exprs(USUBJID, VISIT),
wstcir_code = "WSTCIR",
hipcir_code = "HIPCIR",
set_values_to = exprs(
PARAMCD = "WAISTHIP",
PARAM = "Waist to Hip Ratio"
),
get_unit_expr = admiral::extract_unit(PARAM),
filter = VISIT %in% c("SCREENING", "WEEK 3")
)
# Automatic conversion is performed when deriving the ratio
# if parameters are provided in different units
advs <- tribble(
~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT,
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 125, "cm", "SCREENING",
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 124, "cm", "WEEK 2",
"01-101-1001", "HIPCIR", "Hip Circumference (cm)", 123, "cm", "WEEK 3",
"01-101-1001", "WSTCIR", "Waist Circumference (in)", 43.31, "in", "SCREENING",
"01-101-1001", "WSTCIR", "Waist Circumference (in)", 42.52, "in", "WEEK 2",
"01-101-1001", "WSTCIR", "Waist Circumference (in)", 42.13, "in", "WEEK 3",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 135, "cm", "SCREENING",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 133, "cm", "WEEK 2",
"01-101-1002", "HIPCIR", "Hip Circumference (cm)", 132, "cm", "WEEK 3",
"01-101-1002", "WSTCIR", "Waist Circumference (in)", 47.24, "in", "SCREENING",
"01-101-1002", "WSTCIR", "Waist Circumference (in)", 46.46, "in", "WEEK 2",
"01-101-1002", "WSTCIR", "Waist Circumference (in)", 46.06, "in", "WEEK 3"
)
derive_param_waisthip(
advs,
by_vars = exprs(USUBJID, VISIT),
wstcir_code = "WSTCIR",
hipcir_code = "HIPCIR",
set_values_to = exprs(
PARAMCD = "WAISTHIP",
PARAM = "Waist to Hip Ratio"
),
get_unit_expr = admiral::extract_unit(PARAM)
)
Run the code above in your browser using DataLab