Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. library(survival)
  2.  
  3. library(ggplot2)
  4. library(scales)
  5.  
  6. d.survfit <- survival::survfit(survival::Surv(time, status) ~ sex,
  7. data = lung)
  8.  
  9. fortify.survfit <- function(survfit.data) {
  10. data.frame(time = survfit.data$time,
  11. n.risk = survfit.data$n.risk,
  12. n.event = survfit.data$n.event,
  13. n.censor = survfit.data$n.censor,
  14. surv = survfit.data$surv,
  15. std.err = survfit.data$std.err,
  16. upper = survfit.data$upper,
  17. lower = survfit.data$lower,
  18. strata = rep(names(survfit.data$strata), survfit.data$strata))
  19. }
  20.  
  21. head(ggplot2::fortify(d.survfit))
  22.  
  23. ggplot(data = d.survfit) +
  24. geom_line(aes_string(x = 'time', y = 'surv', colour = 'strata')) +
  25. geom_ribbon(aes_string(x = 'time', ymin = 'lower', ymax = 'upper', fill = 'strata'), alpha = 0.5) +
  26. scale_y_continuous(labels = scales::percent)
  27.  
  28. # plot censors
  29. fortified <- ggplot2::fortify(d.survfit)
  30. ggplot(data = fortified) +
  31. geom_line(aes_string(x = 'time', y = 'surv', colour = 'strata')) +
  32. geom_ribbon(aes_string(x = 'time', ymin = 'lower', ymax = 'upper', fill = 'strata'), alpha = 0.5) +
  33. geom_point(data = fortified[fortified$n.censor > 0, ],
  34. aes_string(x = 'time', y = 'surv'), shape = '+', size = 3) +
  35. scale_y_continuous(labels = scales::percent)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement