Add a new parameter indicating that a certain event exists in a dataset.
AVALC
and AVAL
indicate if an event occurred or not. For example, the
function can derive a parameter indicating if there is measurable disease at
baseline.
derive_param_exist_flag(
dataset = NULL,
dataset_ref,
dataset_add,
condition,
true_value = "Y",
false_value = NA_character_,
missing_value = NA_character_,
filter_add = NULL,
by_vars = get_admiral_option("subject_keys"),
set_values_to
)
Input dataset
The variables specified by the by_vars
argument are expected to be in the dataset.
PARAMCD
is expected as well.
NULL
Reference dataset, e.g., ADSL
The variables specified in by_vars
are expected. For each group
(as defined by by_vars
) from the specified dataset (dataset_ref
),
the existence flag is calculated and added as a new observation to the
input datasets (dataset
).
none
Additional dataset
The variables specified by the by_vars
parameter are expected.
This dataset is used to check if an event occurred or not. Any observation
in the dataset fulfilling the event condition (condition
) is considered
as an event.
none
Event condition
The condition is evaluated at the additional dataset (dataset_add
).
For all groups where it evaluates as TRUE
at least once AVALC
is set
to the true value (true_value
) for the new observations.
For all groups where it evaluates as FALSE
or NA
for all observations
AVALC
is set to the false value (false_value
).
For all groups not present in the additional dataset AVALC
is set to
the missing value (missing_value
).
none
True value
For all groups with at least one observations in the additional dataset
(dataset_add
) fulfilling the event condition (condition
), AVALC
is
set to the specified value (true_value
).
A character scalar
"Y"
False value
For all groups with at least one observations in the additional dataset
(dataset_add
) but none of them is fulfilling the event condition
(condition
), AVALC
is set to the specified value (false_value
).
A character scalar
NA_character_
Values used for missing information
For all groups without an observation in the additional dataset
(dataset_add
), AVALC
is set to the specified value (missing_value
).
A character scalar
NA_character_
Filter for additional data
Only observations fulfilling the specified condition are taken into account for flagging. If the parameter is not specified, all observations are considered.
a condition
NULL
Grouping variables
get_admiral_option("subject_keys")
Variables to set
A named list returned by exprs()
defining the variables to be set for the
new parameter, e.g. exprs(PARAMCD = "MDIS", PARAM = "Measurable Disease at Baseline")
is expected. The values must be symbols, character strings,
numeric values, NA
, or expressions.
none
The input dataset with a new parameter indicating if an event
occurred (AVALC
and the variables specified by by_vars
and set_value_to
are populated for the new parameter).
The additional dataset (dataset_add
) is restricted to the observations
matching the filter_add
condition.
For each group in dataset_ref
a new observation is created.
The AVALC
variable is added and set to the true value (true_value
)
if for the group at least one observation exists in the (restricted)
additional dataset where the condition evaluates to TRUE
.
It is set to the false value (false_value
) if for the group at least
one observation exists and for all observations the condition evaluates
to FALSE
or NA
.
Otherwise, it is set to the missing value (missing_value
), i.e., for
those groups not in dataset_add
.
The variables specified by the set_values_to
parameter are added to
the new observations.
The new observations are added to input dataset.
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_doseint()
,
derive_param_exposure()
,
derive_param_framingham()
,
derive_param_map()
,
derive_param_qtc()
,
derive_param_rr()
,
derive_param_wbc_abs()
,
derive_summary_records()
library(tibble)
library(dplyr, warn.conflicts = FALSE)
library(lubridate)
# Derive a new parameter for measurable disease at baseline
adsl <- tribble(
~USUBJID,
"1",
"2",
"3"
) %>%
mutate(STUDYID = "XX1234")
tu <- tribble(
~USUBJID, ~VISIT, ~TUSTRESC,
"1", "SCREENING", "TARGET",
"1", "WEEK 1", "TARGET",
"1", "WEEK 5", "TARGET",
"1", "WEEK 9", "NON-TARGET",
"2", "SCREENING", "NON-TARGET",
"2", "SCREENING", "NON-TARGET"
) %>%
mutate(
STUDYID = "XX1234",
TUTESTCD = "TUMIDENT"
)
derive_param_exist_flag(
dataset_ref = adsl,
dataset_add = tu,
filter_add = TUTESTCD == "TUMIDENT" & VISIT == "SCREENING",
condition = TUSTRESC == "TARGET",
false_value = "N",
missing_value = "N",
set_values_to = exprs(
AVAL = yn_to_numeric(AVALC),
PARAMCD = "MDIS",
PARAM = "Measurable Disease at Baseline"
)
)
#> # A tibble: 3 × 6
#> STUDYID USUBJID AVALC AVAL PARAMCD PARAM
#> <chr> <chr> <chr> <dbl> <chr> <chr>
#> 1 XX1234 1 Y 1 MDIS Measurable Disease at Baseline
#> 2 XX1234 2 N 0 MDIS Measurable Disease at Baseline
#> 3 XX1234 3 N 0 MDIS Measurable Disease at Baseline