library(data.table)
## basic example code reproduced from the starting-description vignette
df <- data.table::data.table(
"UserID" = c(112, 114, 213, 214, 115, 116, 117),
"Starting_Age" = c(18, 20, 18, 19, 21, 20, 18),
"Ending_Age" = c(30, 45, 57, 47, 36, 60, 55),
"Cancer_Status" = c(0, 0, 1, 0, 1, 0, 0),
"a" = c(0, 1, 1, 0, 1, 0, 1),
"b" = c(1, 1.1, 2.1, 2, 0.1, 1, 0.2),
"c" = c(10, 11, 10, 11, 12, 9, 11),
"d" = c(0, 0, 0, 1, 1, 1, 1)
)
# For the interval case
time1 <- "Starting_Age"
time2 <- "Ending_Age"
event <- "Cancer_Status"
names <- c("a", "b", "c", "d")
term_n <- c(0, 1, 1, 2)
tform <- c("loglin", "lin", "lin", "plin")
modelform <- "M"
fir <- 0
a_n <- c(0.1, 0.1, 0.1, 0.1)
keep_constant <- c(0, 0, 0, 0)
der_iden <- 0
df$censor <- (df$Cancer_Status == 0)
event <- "censor"
control <- list(
"ncores" = 2, "lr" = 0.75, "maxiter" = 20, "halfmax" = 5,
"epsilon" = 1e-6, "deriv_epsilon" = 1e-6,
"abs_max" = 1.0, "change_all" = TRUE, "dose_abs_max" = 100.0, "verbose" = FALSE,
"ties" = "breslow", "double_step" = 1
)
plot_options <- list(
"name" = paste(tempfile(), "run_06", sep = ""), "verbose" = FALSE,
"studyID" = "studyID", "age_unit" = "years"
)
dft <- GetCensWeight(
df, time1, time2, event, names, term_n, tform,
keep_constant, a_n, modelform, fir, control, plot_options
)
t_ref <- dft$t
surv_ref <- dft$surv
t_c <- df$t1
cens_weight <- approx(t_ref, surv_ref, t_c, rule = 2)$y
Run the code above in your browser using DataLab