Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(survival)
- library(ggplot2)
- library(scales)
- d.survfit <- survival::survfit(survival::Surv(time, status) ~ sex,
- data = lung)
- fortify.survfit <- function(survfit.data) {
- data.frame(time = survfit.data$time,
- n.risk = survfit.data$n.risk,
- n.event = survfit.data$n.event,
- n.censor = survfit.data$n.censor,
- surv = survfit.data$surv,
- std.err = survfit.data$std.err,
- upper = survfit.data$upper,
- lower = survfit.data$lower,
- strata = rep(names(survfit.data$strata), survfit.data$strata))
- }
- head(ggplot2::fortify(d.survfit))
- ggplot(data = d.survfit) +
- geom_line(aes_string(x = 'time', y = 'surv', colour = 'strata')) +
- geom_ribbon(aes_string(x = 'time', ymin = 'lower', ymax = 'upper', fill = 'strata'), alpha = 0.5) +
- scale_y_continuous(labels = scales::percent)
- # plot censors
- fortified <- ggplot2::fortify(d.survfit)
- ggplot(data = fortified) +
- geom_line(aes_string(x = 'time', y = 'surv', colour = 'strata')) +
- geom_ribbon(aes_string(x = 'time', ymin = 'lower', ymax = 'upper', fill = 'strata'), alpha = 0.5) +
- geom_point(data = fortified[fortified$n.censor > 0, ],
- aes_string(x = 'time', y = 'surv'), shape = '+', size = 3) +
- scale_y_continuous(labels = scales::percent)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement