
Adds a Parameter for BSA (Body Surface Area) Using the Specified Method
Source:R/derive_advs_params.R
derive_param_bsa.RdAdds a record for BSA (Body Surface Area) using the specified derivation method for each by group (e.g., subject and visit) where the source parameters are available.
Usage
derive_param_bsa(
dataset,
by_vars,
method,
set_values_to = exprs(PARAMCD = "BSA"),
height_code = "HEIGHT",
weight_code = "WEIGHT",
get_unit_expr,
filter = NULL
)Arguments
- dataset
Input dataset
The variables specified by the
by_varsparameter,PARAMCD, andAVALare expected.The variable specified by
by_varsandPARAMCDmust be a unique key of the input dataset after restricting it by the filter condition (filterparameter) and to the parameters specified byHEIGHTandWEIGHT.- by_vars
Grouping variables
For each group defined by
by_varsan observation is added to the output dataset. Only variables specified inby_varswill be populated in the newly created records.Permitted Values: list of variables
- method
Derivation method to use. Note that
HEIGHTis expected in cm andWEIGHTis expected in kg:Mosteller:
sqrt(height * weight / 3600)DuBois-DuBois:
0.20247 * (height/100) ^ 0.725 * weight ^ 0.425Haycock:
0.024265 * height ^ 0.3964 * weight ^ 0.5378Gehan-George:
0.0235 * height ^ 0.42246 * weight ^ 0.51456Boyd:
0.0003207 * (height ^ 0.3) * (1000 * weight) ^ (0.7285 - (0.0188 * log10(1000 * weight)))Fujimoto:
0.008883 * height ^ 0.663 * weight ^ 0.444Takahira:
0.007241 * height ^ 0.725 * weight ^ 0.425Permitted 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
exprs(PARAMCD = "MAP")defines the parameter code for the new parameter.Permitted Values: List of variable-value pairs
- height_code
HEIGHT parameter code
The observations where
PARAMCDequals the specified value are considered as the HEIGHT assessments. It is expected that HEIGHT is measured in cm.Permitted Values: character value
- weight_code
WEIGHT parameter code
The observations where
PARAMCDequals the specified value are considered as the WEIGHT assessments. It is expected that WEIGHT is measured in kg.Permitted Values: character value
- get_unit_expr
An expression providing the unit of the parameter
The result is used to check the units of the input parameters.
Permitted Values: A variable of the input dataset or a function call
- 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
Value
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.
See also
BDS-Findings Functions for adding Parameters/Records:
default_qtc_paramcd(),
derive_expected_records(),
derive_extreme_event(),
derive_extreme_records(),
derive_locf_records(),
derive_param_bmi(),
derive_param_computed(),
derive_param_doseint(),
derive_param_exist_flag(),
derive_param_exposure(),
derive_param_extreme_event(),
derive_param_framingham(),
derive_param_map(),
derive_param_qtc(),
derive_param_rr(),
derive_param_wbc_abs(),
derive_summary_records()
Examples
library(tibble)
advs <- tribble(
~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~VISIT,
"01-701-1015", "HEIGHT", "Height (cm)", 170, "BASELINE",
"01-701-1015", "WEIGHT", "Weight (kg)", 75, "BASELINE",
"01-701-1015", "WEIGHT", "Weight (kg)", 78, "MONTH 1",
"01-701-1015", "WEIGHT", "Weight (kg)", 80, "MONTH 2",
"01-701-1028", "HEIGHT", "Height (cm)", 185, "BASELINE",
"01-701-1028", "WEIGHT", "Weight (kg)", 90, "BASELINE",
"01-701-1028", "WEIGHT", "Weight (kg)", 88, "MONTH 1",
"01-701-1028", "WEIGHT", "Weight (kg)", 85, "MONTH 2",
)
derive_param_bsa(
advs,
by_vars = exprs(USUBJID, VISIT),
method = "Mosteller",
set_values_to = exprs(
PARAMCD = "BSA",
PARAM = "Body Surface Area (m^2)"
),
get_unit_expr = extract_unit(PARAM)
)
#> # A tibble: 10 x 5
#> USUBJID PARAMCD PARAM AVAL VISIT
#> <chr> <chr> <chr> <dbl> <chr>
#> 1 01-701-1015 HEIGHT Height (cm) 170 BASELINE
#> 2 01-701-1015 WEIGHT Weight (kg) 75 BASELINE
#> 3 01-701-1015 WEIGHT Weight (kg) 78 MONTH 1
#> 4 01-701-1015 WEIGHT Weight (kg) 80 MONTH 2
#> 5 01-701-1028 HEIGHT Height (cm) 185 BASELINE
#> 6 01-701-1028 WEIGHT Weight (kg) 90 BASELINE
#> 7 01-701-1028 WEIGHT Weight (kg) 88 MONTH 1
#> 8 01-701-1028 WEIGHT Weight (kg) 85 MONTH 2
#> 9 01-701-1015 BSA Body Surface Area (m^2) 1.88 BASELINE
#> 10 01-701-1028 BSA Body Surface Area (m^2) 2.15 BASELINE
derive_param_bsa(
advs,
by_vars = exprs(USUBJID, VISIT),
method = "Fujimoto",
set_values_to = exprs(
PARAMCD = "BSA",
PARAM = "Body Surface Area (m^2)"
),
get_unit_expr = extract_unit(PARAM)
)
#> # A tibble: 10 x 5
#> USUBJID PARAMCD PARAM AVAL VISIT
#> <chr> <chr> <chr> <dbl> <chr>
#> 1 01-701-1015 HEIGHT Height (cm) 170 BASELINE
#> 2 01-701-1015 WEIGHT Weight (kg) 75 BASELINE
#> 3 01-701-1015 WEIGHT Weight (kg) 78 MONTH 1
#> 4 01-701-1015 WEIGHT Weight (kg) 80 MONTH 2
#> 5 01-701-1028 HEIGHT Height (cm) 185 BASELINE
#> 6 01-701-1028 WEIGHT Weight (kg) 90 BASELINE
#> 7 01-701-1028 WEIGHT Weight (kg) 88 MONTH 1
#> 8 01-701-1028 WEIGHT Weight (kg) 85 MONTH 2
#> 9 01-701-1015 BSA Body Surface Area (m^2) 1.82 BASELINE
#> 10 01-701-1028 BSA Body Surface Area (m^2) 2.09 BASELINE