Skip to content

Feature Request: hardcode_ct enhancement #128

Description

@doll-barbara

Feature Idea

When using raw data leveraging already SDTM look-a-like names, currently the hardcode_ct call is not working, ie if raw_var name = tgt_var name the call fails (see code given below).

This is working for assign_ct, hence it might be nice to have the same functionality also for hardcode_ct.

Relevant Input

No response

Relevant Output

No response

Reproducible Example/Pseudo Code

library(sdtm.oak)
library(dplyr)

Read Specification

study_ct <- read.csv(system.file("raw_data/sdtm_ct.csv",
package = "sdtm.oak"
))

Read in raw data

cm_raw <- read.csv(system.file("raw_data/cm_raw_data.csv",
package = "sdtm.oak"
)) %>%
mutate(
CMSTRTPT=MDPRIOR
)
%>%
generate_oak_id_vars(
pat_var = "PATNUM",
raw_src = "cm_raw"
)

dm <- read.csv(system.file("raw_data/dm.csv",
package = "sdtm.oak"
))

Not working example due to tgt_var=raw_var, exactly the same code as in vignette except the variable name

cm_fail <-

Derive topic variable

assign_no_ct(
raw_dat = cm_raw,
raw_var = "MDRAW",
tgt_var = "CMTRT"
) %>%

Derive CMGRPID

assign_no_ct(
raw_dat = cm_raw,
raw_var = "MDNUM",
tgt_var = "CMGRPID",
id_vars = oak_id_vars()
) %>%

DERIVE CMINDC

assign_no_ct(
raw_dat = cm_raw,
raw_var = "MDIND",
tgt_var = "CMINDC",
id_vars = oak_id_vars()
) %>%

Derive CMSTDTC. This function calls create_iso8601

assign_datetime(
raw_dat = cm_raw,
raw_var = c("MDBDR", "MDBTM"),
tgt_var = "CMSTDTC",
raw_fmt = c(list(c("d-m-y", "dd mmm yyyy")), "H:M"),
raw_unk = c("UN", "UNK")
) %>%

Derive qualifier CMSTRTPT Annotation text is If CMSTRTPT == 1 then CM.CMSTRTPT = 'BEFORE'

hardcode_ct(
raw_dat = condition_add(cm_raw, CMSTRTPT == "1"),
raw_var = "CMSTRTPT",
tgt_var = "CMSTRTPT",
tgt_val = "BEFORE",
ct_spec = study_ct,
ct_clst = "C66728",
id_vars = oak_id_vars()
)

leading to

Error in dplyr::mutate():
ℹ In argument: CMSTRTPT = dplyr::if_else(...).
Caused by error in dplyr::coalesce():
! Can't combine ..1 and ..2 .
Run rlang::last_trace() to see where the error occurred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    Product Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions