From 9e988fddbbe698ea87b4b121e2188d04c2789caa Mon Sep 17 00:00:00 2001 From: Stefan Bundfuss Date: Tue, 29 Aug 2023 12:13:07 +0000 Subject: [PATCH] #33 recist: fix variable names --- data-raw/rs_onco_recist.R | 6 +++--- data-raw/tr_onco_recist.R | 14 +++++++------- data-raw/tu_onco_recist.R | 6 +++--- data/tr_onco_recist.rda | Bin 4734 -> 4737 bytes data/tu_onco_recist.rda | Bin 917 -> 918 bytes man/tr_onco_recist.Rd | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/data-raw/rs_onco_recist.R b/data-raw/rs_onco_recist.R index 144dc2d..1dc81ce 100644 --- a/data-raw/rs_onco_recist.R +++ b/data-raw/rs_onco_recist.R @@ -10,7 +10,7 @@ tu <- tu_onco_recist tr <- derive_vars_merged( tr_onco_recist, dataset_add = tu, - by_vars = exprs(USUBJID, TREVAL = TUEVAL, TREVALID = TUEVALID, TRLINKID = TULINKID), + by_vars = exprs(USUBJID, TREVAL = TUEVAL, TREVALID = TUEVALID, TRLNKID = TULNKID), new_vars = exprs(TRLOC = TULOC) ) @@ -38,8 +38,8 @@ sums <- tr %>% summarise( TRSTRESN = sum(TRSTRESN), CRFL = all(CRFL), - IDS = paste(sort(TRLINKID), collapse = ", "), - NTFL = all(substr(TRLINKID, 1, 1) == "N") + IDS = paste(sort(TRLNKID), collapse = ", "), + NTFL = all(substr(TRLNKID, 1, 1) == "N") ) %>% mutate(TRTESTCD = "SUMDIAM") %>% ungroup() diff --git a/data-raw/tr_onco_recist.R b/data-raw/tr_onco_recist.R index c49bd34..2718fa5 100644 --- a/data-raw/tr_onco_recist.R +++ b/data-raw/tr_onco_recist.R @@ -6,7 +6,7 @@ library(admiral) # create tumor results to be used for RS tr <- tribble( - ~SUBJNR, ~TRLINKID, ~TRTESTCD, ~TRORRES, ~VISITNUM, + ~SUBJNR, ~TRLNKID, ~TRTESTCD, ~TRORRES, ~VISITNUM, # BOR = CR, CBOR = SD "1", "T01", "LDIAM", "21", 1, "1", "T02", "LPERP", "32", 1, @@ -120,7 +120,7 @@ tr <- tribble( suppress_warning( tr_compl <- tr %>% mutate( - diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLINKID, 3, 3)) + VISITNUM) %% 11, + diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLNKID, 3, 3)) + VISITNUM) %% 11, TRORRES = case_match( TRTESTCD, "LDIAM" ~ as.character(as.numeric(TRORRES) * (1 - diff_percent / 100)), @@ -144,7 +144,7 @@ tr <- bind_rows(tr, tr_compl) suppress_warning( tr_radio1 <- tr %>% mutate( - diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLINKID, 3, 3)) + VISITNUM) %% 7 - 3, + diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLNKID, 3, 3)) + VISITNUM) %% 7 - 3, TRORRES = if_else( TRTESTCD %in% c("LDIAM", "LPERP"), as.character(as.numeric(TRORRES) * (1 + diff_percent / 100)), @@ -159,7 +159,7 @@ suppress_warning( suppress_warning( tr_radio2 <- tr %>% mutate( - diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLINKID, 3, 3)) + VISITNUM + 3) %% 7 - 3, + diff_percent = (as.numeric(SUBJNR) + as.numeric(substr(TRLNKID, 3, 3)) + VISITNUM + 3) %% 7 - 3, TRORRES = if_else( TRTESTCD %in% c("LDIAM", "LPERP"), as.character(as.numeric(TRORRES) * (1 + diff_percent / 100)), @@ -174,11 +174,11 @@ tr <- bind_rows(tr, tr_radio1, tr_radio2) %>% select(-diff_percent) %>% mutate( TRGRPID = if_else( - substr(TRLINKID, 1, 1) == "T", + substr(TRLNKID, 1, 1) == "T", "TARGET", "NON-TARGET" ), - .before = TRLINKID + .before = TRLNKID ) %>% mutate( TREVAL = if_else(is.na(TREVALID), "INVESTIGATOR", "INDEPENDENT ASSESSOR"), @@ -273,7 +273,7 @@ tr <- derive_var_obs_number( tr_screen <- tr %>% filter(VISITNUM == 1 & basicfl == "Y") %>% - select(STUDYID, USUBJID, SUBJNR, TRLINKID, TRTESTCD, VISIT, VISITNUM, TREVAL, TREVALID, TRACPTFL) + select(STUDYID, USUBJID, SUBJNR, TRLNKID, TRTESTCD, VISIT, VISITNUM, TREVAL, TREVALID, TRACPTFL) saveRDS(tr_screen, file = "data-raw/tu_help_data.rds") tr_onco_recist <- select(tr, -SUBJNR, -basicfl, -RFSTDT) diff --git a/data-raw/tu_onco_recist.R b/data-raw/tu_onco_recist.R index e4faf8a..e935bf3 100644 --- a/data-raw/tu_onco_recist.R +++ b/data-raw/tu_onco_recist.R @@ -21,7 +21,7 @@ tu <- tr_screen %>% TULOC = if_else( TRTESTCD == "LPERP", "LYMPH NODE", - locations[as.numeric(SUBJNR) + as.numeric(substr(TRLINKID, str_length(TRLINKID), str_length(TRLINKID)))] + locations[as.numeric(SUBJNR) + as.numeric(substr(TRLNKID, str_length(TRLNKID), str_length(TRLNKID)))] ), TUTESTCD = "TUMIDENT", TUTEST = "Tumore Identification" @@ -33,10 +33,10 @@ tu_onco_recist <- tu %>% .before = STUDYID ) %>% mutate( - TUORRES = if_else(substr(TRLINKID, 1, 1) == "T", "TARGET", "NON-TARGET"), + TUORRES = if_else(substr(TRLNKID, 1, 1) == "T", "TARGET", "NON-TARGET"), TUSTRESC = TUORRES, TUMETHOD = "CT SCAN", - TULINKID = TRLINKID, + TULNKID = TRLNKID, TUEVAL = TREVAL, TUEVALID = TREVALID, TUACPTFL = TRACPTFL diff --git a/data/tr_onco_recist.rda b/data/tr_onco_recist.rda index 044f522f19d86cbb66ef5ace03c6e68728bcd0f7..e949b68704987d4d68fce8210526584c03d5eb23 100644 GIT binary patch literal 4737 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 i@u1ZQ