## see more examples with explanations in vignette("survtab_examples")
#### survtab_ag usage
data(sire)
## prepare data for e.g. 5-year "period analysis" for 2008-2012
## note: sire is a simulated cohort integrated into popEpi.
BL <- list(fot=seq(0, 5, by = 1/12),
per = c("2008-01-01", "2013-01-01"))
x <- lexpand(sire, birth = bi_date, entry = dg_date, exit = ex_date,
status = status %in% 1:2,
breaks = BL,
pophaz = popmort,
aggre = list(fot))
## calculate relative EdererII period method
st <- survtab_ag(fot ~ 1, data = x)
#### survtab usage
library(Epi)
library(survival)
## NOTE: recommended to use factor status variable
x <- Lexis(entry = list(FUT = 0, AGE = dg_age, CAL = get.yrs(dg_date)),
exit = list(CAL = get.yrs(ex_date)),
data = sire[sire$dg_date < sire$ex_date, ],
exit.status = factor(status, levels = 0:2,
labels = c("alive", "canD", "othD")),
merge = TRUE)
## phony group variable
set.seed(1L)
x$group <- rbinom(nrow(x), 1, 0.5)
## Not run:
# ## observed survival. explicit supplying of status:
# st <- survtab(Surv(time = FUT, event = lex.Xst) ~ group, data = x,
# surv.type = "surv.obs",
# breaks = list(FUT = seq(0, 5, 1/12)))
# ## this assumes the status is lex.Xst (right 99.9 % of the time)
# st <- survtab(FUT ~ group, data = x,
# surv.type = "surv.obs",
# breaks = list(FUT = seq(0, 5, 1/12)))
#
# #### using dates with survtab
# x <- Lexis(entry = list(FUT = 0L, AGE = dg_date-bi_date, CAL = dg_date),
# exit = list(CAL = ex_date),
# data = sire[sire$dg_date < sire$ex_date, ],
# exit.status = factor(status, levels = 0:2,
# labels = c("alive", "canD", "othD")),
# merge = TRUE)
# ## phony group variable
# set.seed(1L)
# x$group <- rbinom(nrow(x), 1, 0.5)
#
# st <- survtab(Surv(time = FUT, event = lex.Xst) ~ group, data = x,
# surv.type = "surv.obs",
# breaks = list(FUT = seq(0, 5, 1/12)*365.25))
#
# ## NOTE: population hazard should be reported at the same scale
# ## as time variables in your Lexis data.
# data(popmort, package = "popEpi")
# pm <- data.frame(popmort)
# names(pm) <- c("sex", "CAL", "AGE", "haz")
# ## from year to day level
# pm$haz <- pm$haz/365.25
# pm$CAL <- as.Date(paste0(pm$CAL, "-01-01"))
# pm$AGE <- pm$AGE*365.25
#
# st <- survtab(Surv(time = FUT, event = lex.Xst) ~ group, data = x,
# surv.type = "surv.rel", relsurv.method = "e2",
# pophaz = pm,
# breaks = list(FUT = seq(0, 5, 1/12)*365.25))
# ## End(Not run)
Run the code above in your browser using DataLab