Title: | Metabolism Extension Package for ADaM in 'R' Asset Library |
---|---|
Description: | A toolbox for programming Clinical Data Standards Interchange Consortium (CDISC) compliant Analysis Data Model (ADaM) datasets in R. ADaM datasets are a mandatory part of any New Drug or Biologics License Application submitted to the United States Food and Drug Administration (FDA). Analysis derivations are implemented in accordance with the "Analysis Data Model Implementation Guide" (CDISC Analysis Data Model Team, 2021, <https://www.cdisc.org/standards/foundational/adam>). The package is an extension package of the 'admiral' package focusing on the metabolism therapeutic area. |
Authors: | Anders Askeland [aut, cre] , Andrii Yurovskyi [aut] , Kathrin Flunkert [aut], Edoardo Mancini [aut] , Shunsuke Goto [aut], Siddhesh Pujari [aut] , Sonali Das [aut], Olga Starostecka [aut], Vang Le-Quy [aut] |
Maintainer: | Anders Askeland <[email protected]> |
License: | Apache License (>= 2) |
Version: | 0.1.0 |
Built: | 2025-01-20 21:29:48 UTC |
Source: | CRAN |
Adds a parameter for Waist to Height Ratio using Waist Circumference and Height for each by group (e.g., subject and visit) where the source parameters are available.
Note: This is a wrapper function for the more generic admiral::derive_param_computed()
.
derive_param_waisthgt( dataset, by_vars, wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs(PARAMCD = "WAISTHGT"), filter = NULL, constant_by_vars = NULL, get_unit_expr )
derive_param_waisthgt( dataset, by_vars, wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs(PARAMCD = "WAISTHGT"), filter = NULL, constant_by_vars = NULL, get_unit_expr )
dataset |
Input dataset The variables specified by the The variable specified by |
by_vars |
Grouping variables For each group defined by Permitted Values: list of variables created by |
wstcir_code |
Waist Circumference parameter code The observations where Permitted Values: character value |
height_code |
Height parameter code The observations where Permitted Values: character value |
set_values_to |
Variables to be set The specified variables are set to the specified values for the new
observations. For example Permitted Values: List of variable-value pairs |
filter |
Filter condition The specified condition is applied to the input dataset before deriving the new parameter, i.e., only observations fulfilling the condition are taken into account. Permitted Values: a condition |
constant_by_vars |
By variables for when Height is constant When Height is constant, the Height parameters (measured only once) are merged to the other parameters using the specified variables. If Height is constant (e.g. only measured once at screening or baseline) then use
Permitted Values: list of variables created by |
get_unit_expr |
An expression providing the unit of the parameter The result is used to check the units of the input parameters. If the units are not consistent within each parameter, an error will be thrown. Additionally, if the input parameters are measured in different units but are mutually convertible (e.g., centimeters for one parameter and inches for another), an automatic conversion will be performed in order to uniform the values before calculating the ratio. Note: Conversion factors come from unit definitions as per CDISC standards.
Permitted Values: A variable of the input dataset or a function call |
The analysis value of the new parameter is derived as
The input dataset with the new parameter added. Note, a variable will only
be populated in the new parameter rows if it is specified in by_vars
.
admiral::derive_param_computed()
ADVS Functions for adding Parameters:
derive_param_waisthip()
library(tibble) library(rlang) # Example 1: Derive Waist to Height Ratio where Height is measured only once advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "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-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "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", ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM) ) # Example 2: Same as above but only adding Waist to Height Ratio # at certain visits derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM), filter = VISIT %in% c("SCREENING", "WEEK 3") ) # Example 3: Pediatric study where Height and Waist Circumference # are measured multiple times advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "01-101-1001", "HEIGHT", "Height (cm)", 148, "cm", "WEEK 2", "01-101-1001", "HEIGHT", "Height (cm)", 149, "cm", "WEEK 3", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 100, "cm", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 99, "cm", "WEEK 2", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 98, "cm", "WEEK 3", "01-101-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "01-101-1002", "HEIGHT", "Height (cm)", 164, "cm", "WEEK 2", "01-101-1002", "HEIGHT", "Height (cm)", 165, "cm", "WEEK 3", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 110, "cm", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 109, "cm", "WEEK 2", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 108, "cm", "WEEK 3" ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), get_unit_expr = admiral::extract_unit(PARAM) ) # Example 4: Automatic conversion is performed when deriving the ratio # if parameters are provided in different units (e.g. centimeters and inches) advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 39.37, "in", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 38.98, "in", "WEEK 2", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 38.58, "in", "WEEK 3", "01-101-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 43.31, "in", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 42.91, "in", "WEEK 2", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 42.52, "in", "WEEK 3" ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM) )
library(tibble) library(rlang) # Example 1: Derive Waist to Height Ratio where Height is measured only once advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "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-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "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", ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM) ) # Example 2: Same as above but only adding Waist to Height Ratio # at certain visits derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM), filter = VISIT %in% c("SCREENING", "WEEK 3") ) # Example 3: Pediatric study where Height and Waist Circumference # are measured multiple times advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "01-101-1001", "HEIGHT", "Height (cm)", 148, "cm", "WEEK 2", "01-101-1001", "HEIGHT", "Height (cm)", 149, "cm", "WEEK 3", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 100, "cm", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 99, "cm", "WEEK 2", "01-101-1001", "WSTCIR", "Waist Circumference (cm)", 98, "cm", "WEEK 3", "01-101-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "01-101-1002", "HEIGHT", "Height (cm)", 164, "cm", "WEEK 2", "01-101-1002", "HEIGHT", "Height (cm)", 165, "cm", "WEEK 3", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 110, "cm", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 109, "cm", "WEEK 2", "01-101-1002", "WSTCIR", "Waist Circumference (cm)", 108, "cm", "WEEK 3" ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), get_unit_expr = admiral::extract_unit(PARAM) ) # Example 4: Automatic conversion is performed when deriving the ratio # if parameters are provided in different units (e.g. centimeters and inches) advs <- tribble( ~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT, "01-101-1001", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 39.37, "in", "SCREENING", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 38.98, "in", "WEEK 2", "01-101-1001", "WSTCIR", "Waist Circumference (in)", 38.58, "in", "WEEK 3", "01-101-1002", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 43.31, "in", "SCREENING", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 42.91, "in", "WEEK 2", "01-101-1002", "WSTCIR", "Waist Circumference (in)", 42.52, "in", "WEEK 3" ) derive_param_waisthgt( advs, by_vars = exprs(USUBJID, VISIT), wstcir_code = "WSTCIR", height_code = "HEIGHT", set_values_to = exprs( PARAMCD = "WAISTHGT", PARAM = "Waist to Height Ratio" ), constant_by_vars = exprs(USUBJID), get_unit_expr = admiral::extract_unit(PARAM) )
Adds a parameter for Waist to Hip Ratio using Waist Circumference and Hip Circumference for each by group (e.g., subject and visit) where the source parameters are available.
Note: This is a wrapper function for the more generic admiral::derive_param_computed()
.
derive_param_waisthip( dataset, by_vars, wstcir_code = "WSTCIR", hipcir_code = "HIPCIR", set_values_to = exprs(PARAMCD = "WAISTHIP"), filter = NULL, get_unit_expr )
derive_param_waisthip( dataset, by_vars, wstcir_code = "WSTCIR", hipcir_code = "HIPCIR", set_values_to = exprs(PARAMCD = "WAISTHIP"), filter = NULL, get_unit_expr )
dataset |
Input dataset The variables specified by the The variable specified by |
by_vars |
Grouping variables For each group defined by Permitted Values: list of variables created by |
wstcir_code |
Waist Circumference parameter code The observations where Permitted Values: character value |
hipcir_code |
Hip Circumference parameter code The observations where Permitted Values: character value |
set_values_to |
Variables to be set The specified variables are set to the specified values for the new
observations. For example Permitted Values: List of variable-value pairs |
filter |
Filter condition The specified condition is applied to the input dataset before deriving the new parameter, i.e., only observations fulfilling the condition are taken into account. Permitted Values: a condition |
get_unit_expr |
An expression providing the unit of the parameter The result is used to check the units of the input parameters. If the units are not consistent within each parameter, an error will be thrown. Additionally, if the input parameters are measured in different units but are mutually convertible (e.g., centimeters for one parameter and inches for another), an automatic conversion will be performed in order to uniform the values before calculating the ratio. Note: Conversion factors come from unit definitions as per CDISC standards.
Permitted Values: A variable of the input dataset or a function call |
The analysis value of the new parameter is derived as
The input dataset with the new parameter added. Note, a variable will only
be populated in the new parameter rows if it is specified in by_vars
.
admiral::derive_param_computed()
ADVS Functions for adding Parameters:
derive_param_waisthgt()
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) )
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) )
An example Demographic SDTM dataset for metabolic studies.
dm_metabolic
dm_metabolic
An object of class tbl_df
(inherits from tbl
, data.frame
) with 5 rows and 25 columns.
Constructed using dm
from the {pharmaversesdtm}
package
An example questionnaire SDTM dataset (containing Control of Eating Questionnaire, CoEQ, test data) for metabolic studies.
Note that University of Leeds are the copyright holders of the CoEQ and the test data included within {admiralmetabolic}
is for not-for-profit use only within {admiralmetabolic}
and pharmaverse
-related examples/documentation. Any persons
or companies wanting to use the CoEQ should request a license to do so from the following
link.
qs_metabolic
qs_metabolic
An object of class tbl_df
(inherits from tbl
, data.frame
) with 966 rows and 18 columns.
Constructed using dm_metabolic
from {admiralmetabolic}
package
An example Vital Signs SDTM dataset for metabolic studies.
vs_metabolic
vs_metabolic
An object of class tbl_df
(inherits from tbl
, data.frame
) with 719 rows and 24 columns.
Constructed using vs
from the {pharmaversesdtm}
package and dm_metabolic
from {admiralmetabolic}
package