From 3dbc3efa98d45e7052102ce4f07ae2d505ea4bef Mon Sep 17 00:00:00 2001 From: John Blischak Date: Mon, 11 Dec 2023 21:04:12 -0500 Subject: [PATCH] Use `data.table::fifelse()` --- DESCRIPTION | 4 ++-- NAMESPACE | 1 + R/early_zero_weight.R | 6 +++--- R/mb_weight.R | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8818e5c3..61f07a8c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: simtrial Type: Package Title: Clinical Trial Simulation -Version: 0.3.2 +Version: 0.3.2.1 Authors@R: c( person("Keaven", "Anderson", email = "keaven_anderson@merck.com", role = c("aut")), person("Yilong", "Zhang", email = "elong0527@gmail.com", role = c("aut")), @@ -38,7 +38,7 @@ VignetteBuilder: knitr Depends: R (>= 4.1.0) Imports: Rcpp, - data.table, + data.table (>= 1.12.4), doFuture, foreach, future, diff --git a/NAMESPACE b/NAMESPACE index c9b345fe..c2eb91d5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,6 +21,7 @@ importFrom(data.table,":=") importFrom(data.table,.N) importFrom(data.table,as.data.table) importFrom(data.table,data.table) +importFrom(data.table,fifelse) importFrom(data.table,frankv) importFrom(data.table,last) importFrom(data.table,merge.data.table) diff --git a/R/early_zero_weight.R b/R/early_zero_weight.R index 2480b57b..42e769a9 100644 --- a/R/early_zero_weight.R +++ b/R/early_zero_weight.R @@ -26,7 +26,7 @@ #' @return A data frame. The column `weight` contains the weights for the #' early zero weighted logrank test for the data in `x`. #' -#' @importFrom data.table ":=" as.data.table merge.data.table setDF +#' @importFrom data.table ":=" as.data.table fifelse merge.data.table setDF #' #' @export #' @@ -97,7 +97,7 @@ early_zero_weight <- function(x, early_period = 4, fail_rate = NULL) { # If it is unstratified design if (n_stratum == 1) { - ans[, weight := ifelse(tte < early_period, 0, 1)] + ans[, weight := fifelse(tte < early_period, 0, 1)] } else { if (is.null(fail_rate)) { stop("For stratified design to use `early_zero_weight()`, `fail_rate` can't be `NULL`.") @@ -114,7 +114,7 @@ early_zero_weight <- function(x, early_period = 4, fail_rate = NULL) { ans <- merge.data.table(ans, late_hr, by = "stratum", all.x = TRUE) ans <- merge.data.table(ans, delay_change_time, by = "stratum", all.x = TRUE) - ans[, weight := ifelse(tte < duration, 0, hr)] + ans[, weight := fifelse(tte < duration, 0, hr)] } setDF(ans) diff --git a/R/mb_weight.R b/R/mb_weight.R index 85b486fa..ac78791b 100644 --- a/R/mb_weight.R +++ b/R/mb_weight.R @@ -66,7 +66,7 @@ #' "Non‐proportional hazards in immuno‐oncology: Is an old perspective needed?" #' _Pharmaceutical Statistics_ 20 (3): 512--527. #' -#' @importFrom data.table ":=" as.data.table data.table merge.data.table setDF +#' @importFrom data.table ":=" as.data.table data.table fifelse merge.data.table setDF #' #' @export #' @@ -151,7 +151,7 @@ mb_weight <- function(x, delay = 4, w_max = Inf) { # Get back stratum with no records before delay ends ans <- ans[tbl_all_stratum, on = "stratum"] # `max_weight` is 1 when there are no records before delay ends - ans[, max_weight := ifelse(is.na(max_weight), 1, max_weight)] + ans[, max_weight := fifelse(is.na(max_weight), 1, max_weight)] # Cut off weights at w_max ans[, max_weight := pmin(w_max, max_weight)] # Now merge max_weight back to stratified dataset