Create a flag variable for the input dataset which indicates if there exists at least one observation in the input dataset fulfilling a certain condition.
Note: This is a helper function for derive_vars_merged_exist_flag() which
inputs this result into derive_vars_merged().
Arguments
- dataset
-
Input dataset
- Default value
none
- new_var
-
New variable
The specified variable is added to the input dataset.
- Default value
none
- condition
-
Condition
The condition is evaluated at the dataset (
dataset). For all rows where it evaluates asTRUEthe new variable is set to1in the new column. Otherwise, it is set to0.Comparing derived numeric variables to fixed values, e.g.,
PCHG <= -90, may give unexpected results due to floating point representation. For details and solutions see the "Floating Point Comparisons" section invignette("concepts_conventions").- Default value
none
- filter
-
Filter for additional data
Only observations fulfilling the specified condition are taken into account for flagging. If the argument is not specified, all observations are considered.
Comparing derived numeric variables to fixed values, e.g.,
PCHG <= -90, may give unexpected results due to floating point representation. For details and solutions see the "Floating Point Comparisons" section invignette("concepts_conventions").- Permitted values
a condition
- Default value
NULL
Value
The output dataset is the input dataset filtered by the filter condition
and with the variable specified for new_var representing a flag for the condition.
See also
Utilities used within Derivation functions:
as_admiral_df(),
extract_unit(),
get_not_mapped(),
get_vars_query()
Examples
library(dplyr, warn.conflicts = FALSE)
ae <- tribble(
~STUDYID, ~DOMAIN, ~USUBJID, ~AETERM, ~AEREL,
"PILOT01", "AE", "01-1028", "ERYTHEMA", "POSSIBLE",
"PILOT01", "AE", "01-1028", "PRURITUS", "PROBABLE",
"PILOT01", "AE", "06-1049", "SYNCOPE", "POSSIBLE",
"PILOT01", "AE", "06-1049", "SYNCOPE", "PROBABLE"
)
get_flagged_records(
dataset = ae,
new_var = AERELFL,
condition = AEREL == "PROBABLE"
) %>%
select(STUDYID, USUBJID, AERELFL)
#> # A tibble: 4 × 3
#> STUDYID USUBJID AERELFL
#> <chr> <chr> <dbl>
#> 1 PILOT01 01-1028 0
#> 2 PILOT01 01-1028 1
#> 3 PILOT01 06-1049 0
#> 4 PILOT01 06-1049 1
vs <- tribble(
~STUDYID, ~DOMAIN, ~USUBJID, ~VISIT, ~VSTESTCD, ~VSSTRESN, ~VSBLFL,
"PILOT01", "VS", "01-1028", "SCREENING", "HEIGHT", 177.8, NA,
"PILOT01", "VS", "01-1028", "SCREENING", "WEIGHT", 98.88, NA,
"PILOT01", "VS", "01-1028", "BASELINE", "WEIGHT", 99.34, "Y",
"PILOT01", "VS", "01-1028", "WEEK 4", "WEIGHT", 98.88, NA,
"PILOT01", "VS", "04-1127", "SCREENING", "HEIGHT", 165.1, NA,
"PILOT01", "VS", "04-1127", "SCREENING", "WEIGHT", 42.87, NA,
"PILOT01", "VS", "04-1127", "BASELINE", "WEIGHT", 41.05, "Y",
"PILOT01", "VS", "04-1127", "WEEK 4", "WEIGHT", 41.73, NA,
"PILOT01", "VS", "06-1049", "SCREENING", "HEIGHT", 167.64, NA,
"PILOT01", "VS", "06-1049", "SCREENING", "WEIGHT", 57.61, NA,
"PILOT01", "VS", "06-1049", "BASELINE", "WEIGHT", 57.83, "Y",
"PILOT01", "VS", "06-1049", "WEEK 4", "WEIGHT", 58.97, NA
)
get_flagged_records(
dataset = vs,
new_var = WTBLHIFL,
condition = VSSTRESN > 90,
filter = VSTESTCD == "WEIGHT" & VSBLFL == "Y"
) %>%
select(STUDYID, USUBJID, WTBLHIFL)
#> # A tibble: 3 × 3
#> STUDYID USUBJID WTBLHIFL
#> <chr> <chr> <dbl>
#> 1 PILOT01 01-1028 1
#> 2 PILOT01 04-1127 0
#> 3 PILOT01 06-1049 0
