Skip to content

Commit

Permalink
Add rmst.formula()
Browse files Browse the repository at this point in the history
  • Loading branch information
jdblischak committed Mar 13, 2024
1 parent db0d586 commit 0bbdaa4
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 1 deletion.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: simtrial
Type: Package
Title: Clinical Trial Simulation
Version: 0.3.2.10
Version: 0.3.2.11
Authors@R: c(
person("Keaven", "Anderson", email = "keaven_anderson@merck.com", role = c("aut")),
person("Yilong", "Zhang", email = "elong0527@gmail.com", role = c("aut")),
Expand Down
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export(multitest)
export(pvalue_maxcombo)
export(randomize_by_fixed_block)
export(rmst)
export(rmst.formula)
export(rpwexp)
export(rpwexp_enroll)
export(sim_fixed_n)
Expand Down
23 changes: 23 additions & 0 deletions R/rmst.R
Original file line number Diff line number Diff line change
Expand Up @@ -299,3 +299,26 @@ rmst_single_arm <- function(

return(ans)
}

#' @export
rmst.formula <- function(formula, data, tau = 10, reference = "control",
alpha = 0.05) {
stopifnot(is.data.frame(data))

variables <- colnames(stats::get_all_vars(formula = formula, data = data))
if (length(variables) != 3) {
stop("The formula interface requires exactly 3 variables specified")
}

ans <- rmst(
data = data,
tau = tau,
var_label_tte = variables[1],
var_label_event = variables[2],
var_label_group = variables[3],
reference = reference,
alpha = alpha
)

return(ans)
}
47 changes: 47 additions & 0 deletions tests/testthat/test-unvalidated-rmst.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
test_that("rmst() snapshot test", {
data(ex1_delayed_effect)
observed <- rmst(
data = ex1_delayed_effect,
var_label_tte = "month",
var_label_event = "evntd",
var_label_group = "trt",
tau = 10,
reference = "0"
)
expected <- data.frame(
rmst_arm1 = 6.495175253205431,
rmst_arm0 = 5.630125973237457,
rmst_diff = 0.8650492799679741,
z = 2.2178796367487963
)
expect_equal(observed, expected)
})

test_that("formula method matches default method", {
data(ex1_delayed_effect)

rmst_default <- rmst(
data = ex1_delayed_effect,
var_label_tte = "month",
var_label_event = "evntd",
var_label_group = "trt",
tau = 10,
reference = "0"
)

rmst_formula_1 <- rmst.formula(
month ~ evntd + trt,
data = ex1_delayed_effect,
tau = 10,
reference = "0"
)
expect_equal(rmst_formula_1, rmst_default)

rmst_formula_2 <- rmst.formula(
survival::Surv(month | evntd) ~ trt,
data = ex1_delayed_effect,
tau = 10,
reference = "0"
)
expect_equal(rmst_formula_2, rmst_default)
})

0 comments on commit 0bbdaa4

Please sign in to comment.