Skip to content

[Bug]: longitudinal app - Error: rlang::hash(ADLB) == "3c8a641b2a2df269fbc095cacf0a4360" is not TRUE #213

@m7pr

Description

@m7pr

When running Show R Code from Visualizations -> Correlation Plot

library(DescTools)
library(magrittr)
library(dplyr)
library(random.cdisc.data)
library(stringr)
library(sparkline)
ADSL <- radsl(seed = 1)
ADLB <- radlb(ADSL, seed = 1)
.exclude_l2 <- c("")
.exclude_chg <- c("")
.arm_mapping <- list(`A: Drug X` = "Drug X 100mg", `C: Combination` = "Combination 100mg", `B: Placebo` = "Placebo")
.keep_label <- function(lhv, rhv) {
    attributes(lhv) <- attributes(rhv)
    lhv
}
.make_label <- function(lhv, label) {
    attr(lhv, "label") <- label
    lhv
}
ADSL <- ADSL %>% filter(ITTFL == "Y") %>% mutate(TRTORD = case_when(TRT01P == "A: Drug X" ~ 1, TRT01P == "C: Combination" ~ 2, TRT01P == "B: Placebo" ~ 3, TRUE ~ as.numeric(NA)), TRTORD = .make_label(TRTORD, "Treatment Order"), TRT01P = as.character(.arm_mapping[match(TRT01P, names(.arm_mapping))]), TRT01P = factor(ARM) %>% reorder(TRTORD), TRT01P = .make_label(TRT01P, "Planned Treatment for Period 01"))
.char_vars_adsl <- names(Filter(isTRUE, sapply(ADSL, is.character)))
ADSL <- ADSL %>% mutate_at(.char_vars_adsl, factor)
.ADLB_SUBSET <- ADLB %>% filter(!is.na(AVAL)) %>% filter(ITTFL == "Y" & toupper(AVISIT) %like any% c("SCREEN%", "BASE%", "%WEEK%", "%FOLLOW%")) %>% select(c("STUDYID", "USUBJID", "ITTFL", "ARM", "ARMCD", "ACTARM", "ACTARMCD", "TRT01P", "TRT01A", "AVISIT", "AVISITN", "ADY", "PARAM", "PARAMCD", "AVAL", "AVALU", "BASE", "CHG", "PCHG", "ANRLO", "ANRHI", "LBSTRESC", "SEX", "RACE", "LOQFL")) %>% mutate(AVISITCD = case_when(toupper(AVISIT) == "SCREENING" ~ "SCR", toupper(AVISIT) == "BASELINE" ~ "BL", grepl("WEEK", 
    toupper(AVISIT)) ~ paste("W", trimws(substr(AVISIT, start = 6, stop = stringr::str_locate(AVISIT, "DAY") - 1))), grepl("FOLLOW", toupper(AVISIT)) ~ "FU", TRUE ~ as.character(NA)), AVISITCDN = case_when(AVISITCD == "SCR" ~ -2, AVISITCD == "BL" ~ 0, grepl("W", AVISITCD) ~ as.numeric(gsub("[^0-9]+", "", AVISITCD)) * 7, AVISITCD == "FU" ~ 100, TRUE ~ as.numeric(NA)), TRTORD = case_when(TRT01P == "A: Drug X" ~ 1, TRT01P == "C: Combination" ~ 2, TRT01P == "B: Placebo" ~ 3, TRUE ~ as.numeric(NA)), LOQFL = if_else(as.character(LOQFL) == 
    "Y", as.character(LOQFL), "N"), BASE2 = NA, CHG2 = NA, PCHG2 = NA) %>% rowwise() %>% group_by(PARAMCD) %>% mutate(LBSTRESC = ifelse(USUBJID %in% sample(USUBJID, 1, replace = TRUE), paste("<", round(runif(1, min = 25, max = 30))), LBSTRESC)) %>% mutate(LBSTRESC = ifelse(USUBJID %in% sample(USUBJID, 1, replace = TRUE), paste(">", round(runif(1, min = 70, max = 75))), LBSTRESC)) %>% ungroup()
attr(.ADLB_SUBSET[["LBSTRESC"]], "label") <- "Character Result/Finding in Std Format"
attr(.ADLB_SUBSET[["ANRLO"]], "label") <- "Analysis Normal Range Lower Limit"
attr(.ADLB_SUBSET[["ANRHI"]], "label") <- "Analysis Normal Range Upper Limit"
.PARAM_MINS <- .ADLB_SUBSET %>% select(USUBJID, PARAMCD, AVAL) %>% group_by(PARAMCD) %>% summarise(AVAL_MIN = min(AVAL, na.rm = TRUE), .groups = "drop") %>% mutate(PARAMCD = .make_label(PARAMCD, "Parameter Code"))
.ADLB_SUPED1 <- .ADLB_SUBSET %>% mutate(BASE2 = .keep_label(ifelse(toupper(AVISIT) == "SCREENING" & is.na(BASE2), AVAL, BASE2), BASE2)) %>% mutate(CHG2 = .keep_label(ifelse(toupper(AVISIT) == "SCREENING" & is.na(CHG2), 0, CHG2), CHG2)) %>% mutate(PCHG2 = .keep_label(ifelse(toupper(AVISIT) == "SCREENING" & is.na(PCHG2), 0, PCHG2), PCHG2)) %>% mutate(BASE = .keep_label(ifelse(toupper(AVISIT) == "BASELINE" & is.na(BASE), AVAL, BASE), BASE)) %>% mutate(CHG = .keep_label(ifelse(toupper(AVISIT) == "BASELINE" & 
    is.na(CHG), 0, CHG), CHG)) %>% mutate(PCHG = .keep_label(ifelse(toupper(AVISIT) == "BASELINE" & is.na(PCHG), 0, PCHG), PCHG)) %>% mutate(TRTORD = .make_label(TRTORD, "Treatment Order"))
.ADLB_SUPED2 <- inner_join(.PARAM_MINS, .ADLB_SUPED1, by = "PARAMCD")[, union(names(.ADLB_SUPED1), names(.PARAM_MINS))] %>% mutate(AVALL2 = .make_label(ifelse(PARAMCD %in% .exclude_l2, AVAL, ifelse(PARAMCD %in% .exclude_chg, NA, ifelse(AVAL == 0 & AVAL_MIN > 0, log2(AVAL_MIN/2), ifelse(AVAL == 0 & AVAL_MIN <= 0, NA, ifelse(AVAL > 0, log2(AVAL), NA))))), "Log2 of AVAL")) %>% mutate(BASEL2 = .make_label(ifelse(PARAMCD %in% .exclude_l2, BASE, ifelse(PARAMCD %in% .exclude_chg, NA, ifelse(BASE == 0 & 
    AVAL_MIN > 0, log2(AVAL_MIN/2), ifelse(BASE == 0 & AVAL_MIN <= 0, NA, ifelse(BASE > 0, log2(BASE), NA))))), "Log2 of BASE")) %>% mutate(BASE2L2 = .make_label(ifelse(PARAMCD %in% .exclude_l2, BASE2, ifelse(PARAMCD %in% .exclude_chg, NA, ifelse(BASE2 == 0 & AVAL_MIN > 0, log2(AVAL_MIN/2), ifelse(BASE2 == 0 & AVAL_MIN <= 0, NA, ifelse(BASE2 > 0, log2(BASE2), NA))))), "Log2 of BASE2")) %>% mutate(AVAL_MIN = .make_label(AVAL_MIN, "Minimum AVAL Within PARAMCD"))
ADLB <- .ADLB_SUPED2 %>% mutate(TRT01P = as.character(.arm_mapping[match(TRT01P, names(.arm_mapping))]), TRT01P = .make_label(factor(TRT01P) %>% reorder(TRTORD), "Planned Treatment for Period 01"), TRT01A = as.character(.arm_mapping[match(TRT01A, names(.arm_mapping))]), TRT01A = .make_label(factor(TRT01A) %>% reorder(TRTORD), "Actual Treatment for Period 01"), LOQFL = .make_label(LOQFL, "Limit of Quantification"), AVISITCD = .make_label(factor(AVISITCD) %>% reorder(AVISITCDN), "Analysis Visit Window Code"), 
    AVISITCDN = .make_label(AVISITCDN, "Analysis Visit Window Code (N)"), BASE2 = .make_label(BASE2, "Screening Value"), CHG2 = .make_label(CHG2, "Absolute Change from Screening"), PCHG2 = .make_label(PCHG2, "Percent Change from Screening"))
.ADLB_LOQS <- goshawk:::h_identify_loq_values(ADLB, flag_var = "LOQFL")
ADLB <- left_join(ADLB, .ADLB_LOQS, by = "PARAM")
stopifnot(rlang::hash(ADSL) == "6a0d37a2dc4a81d7ff62dd65e4bc324a") # @linksto ADSL
stopifnot(rlang::hash(ADLB) == "3c8a641b2a2df269fbc095cacf0a4360") # @linksto ADLB

I get this error

> stopifnot(rlang::hash(ADLB) == "3c8a641b2a2df269fbc095cacf0a4360") # @linkst$
Error: rlang::hash(ADLB) == "3c8a641b2a2df269fbc095cacf0a4360" is not TRUE
> rlang::hash(ADLB)
[1] "d3ab9463483ffb2d416d4e76f86aae44"

Metadata

Metadata

Labels

bugSomething isn't workingcore

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions