Adds a record for the dose intensity 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 derive_param_computed().
The analysis value of the new parameter is derived as Total Dose / Planned Dose * 100
Usage
derive_param_doseint(
dataset,
by_vars,
set_values_to = exprs(PARAMCD = "TNDOSINT"),
tadm_code = "TNDOSE",
tpadm_code = "TSNDOSE",
zero_doses = "Inf",
filter = NULL
)Arguments
- dataset
-
Input dataset
The variables specified by the
by_varsargument are expected to be in the dataset.PARAMCD, andAVALare expected as well.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 bytadm_codeandpadm_code.- Default value
none
- by_vars
-
Grouping variables
Only variables specified in
by_varswill be populated in the newly created records.- Default value
none
- 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
- Default value
exprs(PARAMCD = "MAP")
- tadm_code
-
Total Doses Administered parameter code
The observations where
PARAMCDequals the specified value are considered as the total dose administered. TheAVALassociated with thisPARAMCDwill be the numerator of the dose intensity calculation.- Permitted values
character value
- Default value
"TNDOSE"
- tpadm_code
-
Total Doses Planned parameter code
The observations where
PARAMCDequals the specified value are considered as the total planned dose. TheAVALassociated with thisPARAMCDwill be the denominator of the dose intensity calculation.- Permitted values
character value
- Default value
"TSNDOSE"
- zero_doses
-
Flag indicating logic for handling 0 planned or administered doses for a
by_varsgroup- Permitted values
-
Inf,100No record is returned if either the planned (
tpadm_code) or administered (tadm_code)AVALareNA. No record is returned is a record does not exist for bothtadm_codeandtpadm_codefor the specifiedby_var.If
zero_doses=Inf:If the planned dose (
tpadm_code) is 0 and administered dose (tadm_code) is 0,NaNis returned.If the planned dose (
tpadm_code) is 0 and the administered dose (tadm_code) is > 0,Infis returned.
If
zero_doses=100:If the planned dose (
tpadm_code) is 0 and administered dose (tadm_code) is 0, 0 is returned.If the planned dose (
tpadm_code) is 0 and the administered dose (tadm_code) is > 0, 100 is returned.
- Default value
"Inf"
- 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
an unquoted condition, e.g.,
AVISIT == "BASELINE"- Default value
NULL
Value
The input dataset with the new parameter rows 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_bsa(),
derive_param_computed(),
derive_param_exist_flag(),
derive_param_exposure(),
derive_param_framingham(),
derive_param_map(),
derive_param_qtc(),
derive_param_rr(),
derive_param_wbc_abs(),
derive_summary_records()
Examples
library(tibble)
library(lubridate, warn.conflicts = FALSE)
adex <- tribble(
~USUBJID, ~PARAMCD, ~VISIT, ~ANL01FL, ~ASTDT, ~AENDT, ~AVAL,
"P001", "TNDOSE", "V1", "Y", ymd("2020-01-01"), ymd("2020-01-30"), 59,
"P001", "TSNDOSE", "V1", "Y", ymd("2020-01-01"), ymd("2020-02-01"), 96,
"P001", "TNDOSE", "V2", "Y", ymd("2020-02-01"), ymd("2020-03-15"), 88,
"P001", "TSNDOSE", "V2", "Y", ymd("2020-02-05"), ymd("2020-03-01"), 88,
"P002", "TNDOSE", "V1", "Y", ymd("2021-01-01"), ymd("2021-01-30"), 0,
"P002", "TSNDOSE", "V1", "Y", ymd("2021-01-01"), ymd("2021-02-01"), 0,
"P002", "TNDOSE", "V2", "Y", ymd("2021-02-01"), ymd("2021-03-15"), 52,
"P002", "TSNDOSE", "V2", "Y", ymd("2021-02-05"), ymd("2021-03-01"), 0
)
derive_param_doseint(
adex,
by_vars = exprs(USUBJID, VISIT),
set_values_to = exprs(PARAMCD = "TNDOSINT"),
tadm_code = "TNDOSE",
tpadm_code = "TSNDOSE"
)
#> # A tibble: 12 × 7
#> USUBJID PARAMCD VISIT ANL01FL ASTDT AENDT AVAL
#> <chr> <chr> <chr> <chr> <date> <date> <dbl>
#> 1 P001 TNDOSE V1 Y 2020-01-01 2020-01-30 59
#> 2 P001 TSNDOSE V1 Y 2020-01-01 2020-02-01 96
#> 3 P001 TNDOSE V2 Y 2020-02-01 2020-03-15 88
#> 4 P001 TSNDOSE V2 Y 2020-02-05 2020-03-01 88
#> 5 P002 TNDOSE V1 Y 2021-01-01 2021-01-30 0
#> 6 P002 TSNDOSE V1 Y 2021-01-01 2021-02-01 0
#> 7 P002 TNDOSE V2 Y 2021-02-01 2021-03-15 52
#> 8 P002 TSNDOSE V2 Y 2021-02-05 2021-03-01 0
#> 9 P001 TNDOSINT V1 NA NA NA 61.5
#> 10 P001 TNDOSINT V2 NA NA NA 100
#> 11 P002 TNDOSINT V1 NA NA NA NaN
#> 12 P002 TNDOSINT V2 NA NA NA Inf
derive_param_doseint(
adex,
by_vars = exprs(USUBJID, VISIT),
set_values_to = exprs(PARAMCD = "TDOSINT2"),
tadm_code = "TNDOSE",
tpadm_code = "TSNDOSE",
zero_doses = "100"
)
#> # A tibble: 12 × 7
#> USUBJID PARAMCD VISIT ANL01FL ASTDT AENDT AVAL
#> <chr> <chr> <chr> <chr> <date> <date> <dbl>
#> 1 P001 TNDOSE V1 Y 2020-01-01 2020-01-30 59
#> 2 P001 TSNDOSE V1 Y 2020-01-01 2020-02-01 96
#> 3 P001 TNDOSE V2 Y 2020-02-01 2020-03-15 88
#> 4 P001 TSNDOSE V2 Y 2020-02-05 2020-03-01 88
#> 5 P002 TNDOSE V1 Y 2021-01-01 2021-01-30 0
#> 6 P002 TSNDOSE V1 Y 2021-01-01 2021-02-01 0
#> 7 P002 TNDOSE V2 Y 2021-02-01 2021-03-15 52
#> 8 P002 TSNDOSE V2 Y 2021-02-05 2021-03-01 0
#> 9 P001 TDOSINT2 V1 NA NA NA 61.5
#> 10 P001 TDOSINT2 V2 NA NA NA 100
#> 11 P002 TDOSINT2 V1 NA NA NA 0
#> 12 P002 TDOSINT2 V2 NA NA NA 100
