Description Usage Arguments Details Value Author(s) Examples
View source: R/derive_derived_param.R
Adds a parameter computed from the analysis value of other parameters. It is expected that the analysis value of the new parameter is defined by an expression using the analysis values of other parameters. For example mean arterial pressure (MAP) can be derived from systolic (SYSBP) and diastolic blood pressure (DIABP) with the formula
MAP = (SYSBP + 2 DIABP) / 3
1 2 3 4 5 6 7 8 9 10 | derive_derived_param(
dataset,
by_vars,
parameters,
analysis_value,
set_values_to,
filter = NULL,
constant_by_vars = NULL,
constant_parameters = NULL
)
|
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 |
parameters |
Required parameter codes It is expected that all parameter codes ( Permitted Values: A character vector of |
analysis_value |
Definition of the analysis value An expression defining the analysis value ( Permitted Values: An unquoted expression |
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 constant parameters The constant parameters are merged to the other parameters using the specified variables. This is useful if some parameters were measured only once. For example if BMI should be derived and height is measured only once while weight is measured at each visit. Height could be specified for the constant parameters. Permitted Values: list of variables |
constant_parameters |
Required constant parameter codes It is expected that all parameter codes ( Permitted Values: A character vector of |
For each group (with respect to the variables specified for the
by_vars
parameter) an observation is added to the output dataset if the
filtered input dataset contains exactly one observation for each parameter
code specified for parameters
.
For the new observations AVAL
is set to the value specified by
analysis_value
and the variables specified for set_values_to
are set to
the provided values. The values of the other variables of the input dataset
are set to NA
.
The input dataset with the new parameter added
Stefan Bundfuss
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # derive MAP
advs <- tibble::tribble(
~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT,
"01-701-1015", "DIABP", "Diastolic Blood Pressure (mmHg)", 51, "mmHg", "BASELINE",
"01-701-1015", "DIABP", "Diastolic Blood Pressure (mmHg)", 50, "mmHg", "WEEK 2",
"01-701-1015", "SYSBP", "Systolic Blood Pressure (mmHg)", 121, "mmHg", "BASELINE",
"01-701-1015", "SYSBP", "Systolic Blood Pressure (mmHg)", 121, "mmHg", "WEEK 2",
"01-701-1028", "DIABP", "Diastolic Blood Pressure (mmHg)", 79, "mmHg", "BASELINE",
"01-701-1028", "DIABP", "Diastolic Blood Pressure (mmHg)", 80, "mmHg", "WEEK 2",
"01-701-1028", "SYSBP", "Systolic Blood Pressure (mmHg)", 130, "mmHg", "BASELINE",
"01-701-1028", "SYSBP", "Systolic Blood Pressure (mmHg)", 132, "mmHg", "WEEK 2"
)
derive_derived_param(
advs,
by_vars = vars(USUBJID, VISIT),
parameters = c("SYSBP", "DIABP"),
analysis_value = (AVAL.SYSBP + 2 * AVAL.DIABP) / 3,
set_values_to = vars(
PARAMCD = "MAP",
PARAM = "Mean Arterial Pressure (mmHg)",
AVALU = "mmHg"
)
)
# derive BMI where height is measured only once
advs <- tibble::tribble(
~USUBJID, ~PARAMCD, ~PARAM, ~AVAL, ~AVALU, ~VISIT,
"01-701-1015", "HEIGHT", "Height (cm)", 147, "cm", "SCREENING",
"01-701-1015", "WEIGHT", "Weight (kg)", 54.0, "kg", "SCREENING",
"01-701-1015", "WEIGHT", "Weight (kg)", 54.4, "kg", "BASELINE",
"01-701-1015", "WEIGHT", "Weight (kg)", 53.1, "kg", "WEEK 2",
"01-701-1028", "HEIGHT", "Height (cm)", 163, "cm", "SCREENING",
"01-701-1028", "WEIGHT", "Weight (kg)", 78.5, "kg", "SCREENING",
"01-701-1028", "WEIGHT", "Weight (kg)", 80.3, "kg", "BASELINE",
"01-701-1028", "WEIGHT", "Weight (kg)", 80.7, "kg", "WEEK 2"
)
derive_derived_param(
advs,
by_vars = vars(USUBJID, VISIT),
parameters = "WEIGHT",
analysis_value = AVAL.WEIGHT / (AVAL.HEIGHT / 100)^2,
set_values_to = vars(
PARAMCD = "BMI",
PARAM = "Body Mass Index (kg/m^2)",
AVALU = "kg/m^2"
),
constant_parameters = c("HEIGHT"),
constant_by_vars = vars(USUBJID)
)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.