admiral
admiral copied to clipboard
`derive_vars_transposed`: extra variables are treated as `by_vars`
Background Information
In derive_vars_transposed
, if dataset_merge
contains extra variables that not specified in by_vars/key_var/value_var
, they will be treated as grouping variables.
Example: test
is a redundant variable that differs within USUBJID
and FAREFID
cm <- tribble(
~USUBJID, ~CMGRPID, ~CMREFID, ~CMDECOD,
"BP40257-1001", "14", "1192056", "PARACETAMOL"
)
facm <- tribble(
~USUBJID, ~test, ~FAREFID, ~FATESTCD, ~FASTRESC,
"BP40257-1001", "1", "1192056", "CMATC1CD", "N",
"BP40257-1001", "3", "1192056", "CMATC2CD", "N02",
"BP40257-1001", "3", "1192056", "CMATC3CD", "N02B",
"BP40257-1001", "4", "1192056", "CMATC4CD", "N02BE"
)
cm %>%
derive_vars_transposed(
facm,
by_vars = exprs(USUBJID, CMREFID = FAREFID),
key_var = FATESTCD,
value_var = FASTRESC
)
# A tibble: 3 × 9
USUBJID CMGRPID CMREFID CMDECOD test CMATC1CD CMATC2CD CMATC3CD CMATC4CD
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 BP40257-1001 14 1192056 PARACETAMOL 1 N NA NA NA
2 BP40257-1001 14 1192056 PARACETAMOL 3 NA N02 N02B NA
3 BP40257-1001 14 1192056 PARACETAMOL 4 NA NA NA N02BE
Expected results (need pre-processing to remove the unused variables):
cm %>%
derive_vars_transposed(
facm %>% select(-test),
by_vars = exprs(USUBJID, CMREFID = FAREFID),
key_var = FATESTCD,
value_var = FASTRESC
)
# A tibble: 1 × 8
USUBJID CMGRPID CMREFID CMDECOD CMATC1CD CMATC2CD CMATC3CD CMATC4CD
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 BP40257-1001 14 1192056 PARACETAMOL N N02 N02B N02BE
Definition of Done
add id_cols
to derive_vars_transposed