# NOT RUN {
# example 1: Impute NA as one stratum in experimental arm; default model
library(dplyr)
clinical_1 <- clinical %>% mutate(
indicator = case_when(
STRATUM == "strata_1" ~ 0,
STRATUM == "strata_2" ~ 1,
is.na(STRATUM) & ARM == "experimental" ~ 1,
TRUE ~ -1
),
ARM = factor(ARM, levels = c("control","experimental")),
BNLR = case_when(
is.na(BNLR) ~ median(BNLR, na.rm = TRUE),
TRUE ~ BNLR
)
)
ipw_res1 <- ipw_strata(
data.in = clinical_1, formula = indicator ~ BECOG + SEX + BNLR,
indicator.var = "indicator", tte = "OS_MONTH", event = "OS_EVENT", trt = "ARM",
class.of.int = list("strata_1" = 1, "strata_2" = 0)
)
## Weighted HRs
ipw_res1$stat
# example 2: "Weight regression imputation" model
clinical_2 <- clinical %>% mutate(
indicator = case_when(
STRATUM == "strata_1" ~ 0,
STRATUM == "strata_2" ~ 1,
is.na(STRATUM) & ARM == "experimental" ~ 2,
TRUE ~ -1
),
indicator_next = case_when(
STRATUM_NEXT == "strata_1" ~ 0,
STRATUM_NEXT == "strata_2" ~ 1,
is.na(STRATUM_NEXT) & ARM == "experimental" ~ 2,
TRUE ~ -1
),
ARM = factor(ARM, levels = c("control","experimental")),
BNLR = case_when(
is.na(BNLR) ~ median(BNLR, na.rm = TRUE),
TRUE ~ BNLR
)
)
ipw_res2 <- ipw_strata(
data.in = clinical_2, formula = indicator ~ BECOG + SEX + BNLR, model = "wri",
indicator.var = "indicator", indicator.next = "indicator_next",
tte = "OS_MONTH", event = "OS_EVENT", trt = "ARM",
class.of.int = list("strata_1" = 1, "strata_2" = 0)
)
## Weighted HRs
ipw_res2$stat
# }
Run the code above in your browser using DataLab