## A simple survival model
library(survival)
data(pbc)
SurvFrame <- pbc
## or simply create some data
SurvFrame <- data.frame(time=1:10,status=sample(0:1,10,TRUE))
SurvHist <- with(SurvFrame,Hist(time,status))
plot(SurvHist,
state.lab=c("Randomization","Death"),
arrow.lab=expression(lambda(t)),
layout=list(nrow=2,ncol=2,box.pos=list(c(1,1),c(2,2))))
## two competing risks
comprisk.model <- data.frame(time=1:3,status=1:3)
CRHist <- with(comprisk.model,Hist(time,status,cens.code=2))
plot(CRHist,
cex=2,
state.lab=c("Alive","Dead\n cause 1","Dead\n cause 2"),
style="character",ybox.rule=1,
arrow.lab=c(expression(gamma[1](t),gamma[2](t))),
enumerate.boxes=TRUE,
cex.boxlabs = 1.28)
## change the layout
plot(CRHist,
cex=2,
state.lab=c("Alive","Dead\n cause 1","Dead\n cause 2"),
style="character",ybox.rule=1,
arrow.lab=c(expression(gamma[1](t),gamma[2](t))),
arrow.lab.side=c(1,-1),
enumerate.boxes=TRUE,
cex.boxlabs = 1.28,
layout=list(nrow=2,ncol=3,box.pos=list(c(1,2),c(2,1),c(2,3))))
## more competing risks
comprisk.model2 <- data.frame(time=1:4,status=1:4)
CRHist2 <- with(comprisk.model2,Hist(time,status,cens.code=2))
plot(CRHist2,
cex=2,
state.lab=c("Alive","Dead\n cause 1","Dead\n cause 2","Dead\n cause 3"),
arrow.lab=c(expression(alpha[1](t),alpha[2](t),alpha[3](t))),
enumerate.boxes=TRUE,
ybox.rule=.8,
verbose=FALSE,
cex.boxlabs = 1.28)
## change the layout
plot(CRHist2,
cex=2,
state.lab=c("Alive","Dead\n cause 1","Dead\n cause 2","Dead\n cause 3"),
arrow.lab=c(expression(alpha[1](t),alpha[2](t),alpha[3](t))),
enumerate.boxes=TRUE,
ybox.rule=.8,
verbose=FALSE,
cex.boxlabs = 1.28,
layout=list(nrow=3,ncol=3,box.pos=list(c(2,1),c(1,2),c(3,2),c(2,3))),
reverse=FALSE,
arrow.lab.side=c(-1,1,-1),
arrow.lab.offset=c(7,9,8))
## illness-death models
illness.death.frame <-
data.frame(time=1:4,
from=c("Disease-free","Disease-free",
"Diseased","Disease-free"),
to=c("0","Diseased","Dead","Dead"))
IDHist <- with(illness.death.frame,
Hist(time,event=list(from,to)))
plot(IDHist,
ybox.rule=4,
xbox.rule=.3,
state.cex=1.3,
enum=TRUE,
arrow.lab.side=c(-1,-1,1))
## illness-death with recovery
illness.death.frame2 <- data.frame(time=1:5,
from=c("Disease\nfree","Disease\nfree",
"Diseased","Diseased","Disease\nfree"),
to=c("0","Diseased","Disease\nfree",
"Dead","Dead"))
IDHist2 <- with(illness.death.frame2,Hist(time,event=list(from,to)))
plot(IDHist2,
ybox.rule=1.3,
xbox.rule=.3,
state.cex=2,
arrow.lab.offset=c(13,13,8,10),
enum=TRUE,
verbose=FALSE)
## change the layout
plot(IDHist2,
ybox.rule=1.3,
xbox.rule=.3,
state.cex=2,
enum=TRUE,
verbose=FALSE,
layout=list(ncol=3,nrow=2,box.pos=list(c(1,1),c(2,2),c(1,3))),
arrow.lab.side=c(-1,1,-1,1),
arrow.lab.offset=c(15,15,10,10))
Run the code above in your browser using DataLab