Add expected records as new observations for each 'by group' when the dataset contains missing observations.
derive_expected_records(
dataset,
dataset_ref,
by_vars = NULL,
set_values_to = NULL
)Input dataset
The variables specified by the dataset_ref and by_vars arguments are expected to be in the dataset.
none
Expected observations dataset
Data frame with the expected observations, e.g., all the expected
combinations of PARAMCD, PARAM, AVISIT, AVISITN, ...
none
Grouping variables
For each group defined by by_vars those observations from dataset_ref
are added to the output dataset which do not have a corresponding observation
in the input dataset.
NULL
Variables to be set
The specified variables are set to the specified values for the new observations.
A list of variable name-value pairs is expected.
LHS refers to a variable.
RHS refers to the values to set to the variable. This can be a string, a
symbol, a numeric value, NA, or expressions, e.g., exprs(PARAMCD = "TDOSE", PARCAT1 = "OVERALL").
NULL
The input dataset with the missed expected observations added for each
by_vars. Note, a variable will only be populated in the new parameter rows
if it is specified in by_vars or set_values_to.
For each group (the variables specified in the by_vars parameter),
those records from dataset_ref that are missing in the input
dataset are added to the output dataset.
BDS-Findings Functions for adding Parameters/Records:
default_qtc_paramcd(),
derive_extreme_event(),
derive_extreme_records(),
derive_locf_records(),
derive_param_bmi(),
derive_param_bsa(),
derive_param_computed(),
derive_param_doseint(),
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()
library(tibble)
adqs <- tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 1, "WEEK 1", 10,
"1", "b", 1, "WEEK 1", 11,
"2", "a", 2, "WEEK 2", 12,
"2", "b", 2, "WEEK 2", 14
)
# Example 1. visit variables are parameter independent
parm_visit_ref <- tribble(
~AVISITN, ~AVISIT,
1, "WEEK 1",
2, "WEEK 2"
)
derive_expected_records(
dataset = adqs,
dataset_ref = parm_visit_ref,
by_vars = exprs(USUBJID, PARAMCD),
set_values_to = exprs(DTYPE = "DERIVED")
)
#> # A tibble: 8 × 6
#> USUBJID PARAMCD AVISITN AVISIT AVAL DTYPE
#> <chr> <chr> <dbl> <chr> <dbl> <chr>
#> 1 1 a 1 WEEK 1 10 NA
#> 2 1 a 2 WEEK 2 NA DERIVED
#> 3 1 b 1 WEEK 1 11 NA
#> 4 1 b 2 WEEK 2 NA DERIVED
#> 5 2 a 1 WEEK 1 NA DERIVED
#> 6 2 a 2 WEEK 2 12 NA
#> 7 2 b 1 WEEK 1 NA DERIVED
#> 8 2 b 2 WEEK 2 14 NA
# Example 2. visit variables are parameter dependent
parm_visit_ref <- tribble(
~PARAMCD, ~AVISITN, ~AVISIT,
"a", 1, "WEEK 1",
"a", 2, "WEEK 2",
"b", 1, "WEEK 1"
)
derive_expected_records(
dataset = adqs,
dataset_ref = parm_visit_ref,
by_vars = exprs(USUBJID, PARAMCD),
set_values_to = exprs(DTYPE = "DERIVED")
)
#> # A tibble: 7 × 6
#> USUBJID PARAMCD AVISITN AVISIT AVAL DTYPE
#> <chr> <chr> <dbl> <chr> <dbl> <chr>
#> 1 1 a 1 WEEK 1 10 NA
#> 2 1 a 2 WEEK 2 NA DERIVED
#> 3 1 b 1 WEEK 1 11 NA
#> 4 2 a 1 WEEK 1 NA DERIVED
#> 5 2 a 2 WEEK 2 12 NA
#> 6 2 b 1 WEEK 1 NA DERIVED
#> 7 2 b 2 WEEK 2 14 NA