# The sample data set is an augmented CDC AIDS dataset (ASCII)
# which is used in the examples in the help file. This dataset is
# described in Kalbfleisch and Lawless (JASA, 1989).
# Here, we have included only children 4 years old and younger.
# We have also added a new field, dethdate, which
# represents a fictitious death date for each patient. There was
# no recording of death date on the original dataset. In addition, we have
# added a fictitious viral load reading (copies/ml) for each patient at time of AIDS diagnosis,
# noting viral load was also not part of the original dataset.
#
# All dates are julian with julian=0 being
# January 1, 1960, and julian=14000 being 14000 days beyond
# January 1, 1960 (i.e., May 1, 1998).
cdcaids <- data.frame(
age=c(4,2,1,1,2,2,2,4,2,1,1,3,2,1,3,2,1,2,4,2,2,1,4,2,4,1,4,2,1,1,3,3,1,3),
infedate=c(
7274,7727,7949,8037,7765,8096,8186,7520,8522,8609,8524,8213,8455,8739,
8034,8646,8886,8549,8068,8682,8612,9007,8461,8888,8096,9192,9107,9001,
9344,9155,8800,8519,9282,8673),
diagdate=c(
8100,8158,8251,8343,8463,8489,8554,8644,8713,8733,8854,8855,8863,8983,
9035,9037,9132,9164,9186,9221,9224,9252,9274,9404,9405,9433,9434,9470,
9470,9472,9489,9500,9585,9649),
diffdate=c(
826,431,302,306,698,393,368,1124,191,124,330,642,408,244,1001,391,246,
615,1118,539,612,245,813,516,1309,241,327,469,126,317,689,981,303,976),
dethdate=c(
8434,8304,NA,8414,8715,NA,8667,9142,8731,8750,8963,9120,9005,9028,9445,
9180,9189,9406,9711,9453,9465,9289,9640,9608,10010,9488,9523,9633,9667,
9547,9755,NA,9686,10084),
censdate=c(
NA,NA,8321,NA,NA,8519,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,
NA,NA,NA,NA,NA,NA,NA,NA,NA,10095,NA,NA),
viralload=c(
13000,36000,70000,90000,21000,110000,75000,12000,125000,110000,13000,39000,79000,135000,14000,
42000,123000,20000,12000,18000,16000,140000,16000,58000,11000,120000,85000,31000,24000,115000,
17000,13100,72000,13500)
)
cdcaids <- upData(cdcaids,
labels=c(age ='Age, y', infedate='Date of blood transfusion',
diagdate='Date of AIDS diagnosis',
diffdate='Incubation period (days from HIV to AIDS)',
dethdate='Fictitious date of death',
censdate='Fictitious censoring date',
viralload='Fictitious viral load'))
# Note that the style options listed with these
# examples are best suited for output to a postscript file (i.e., using
# the postscript function with horizontal=TRUE) as opposed to a graphical
# window (e.g., motif).
# To produce simple calendar event chart (with internal legend):
# postscript('example1.ps', horizontal=TRUE)
event.chart(cdcaids,
subset.c=c('infedate','diagdate','dethdate','censdate'),
x.lab = 'observation dates',
y.lab='patients (sorted by AIDS diagnosis date)',
titl='AIDS data calendar event chart 1',
point.pch=c(1,2,15,0), point.cex=c(1,1,0.8,0.8),
legend.plot=TRUE, legend.location='i', legend.cex=1.0,
legend.point.text=c('transfusion','AIDS diagnosis','death','censored'),
legend.point.at = list(c(7210, 8100), c(35, 27)), legend.bty='o')
# To produce simple interval event chart (with internal legend):
# postscript('example2.ps', horizontal=TRUE)
event.chart(cdcaids,
subset.c=c('infedate','diagdate','dethdate','censdate'),
x.lab = 'time since transfusion (in days)',
y.lab='patients (sorted by AIDS diagnosis date)',
titl='AIDS data interval event chart 1',
point.pch=c(1,2,15,0), point.cex=c(1,1,0.8,0.8),
legend.plot=TRUE, legend.location='i', legend.cex=1.0,
legend.point.text=c('transfusion','AIDS diagnosis','death','censored'),
x.reference='infedate', x.julian=TRUE,
legend.bty='o', legend.point.at = list(c(1400, 1950), c(7, -1)))
# To produce simple interval event chart (with internal legend),
# but now with flexible diagdate symbol size based on viral load variable:
# postscript('example2a.ps', horizontal=TRUE)
event.chart(cdcaids,
subset.c=c('infedate','diagdate','dethdate','censdate'),
x.lab = 'time since transfusion (in days)',
y.lab='patients (sorted by AIDS diagnosis date)',
titl='AIDS data interval event chart 1a, with viral load at diagdate represented',
point.pch=c(1,2,15,0), point.cex=c(1,1,0.8,0.8),
point.cex.mult = 0.00002, point.cex.mult.var = 'viralload', extra.points.no.mult = c(1,NA,1,1),
legend.plot=TRUE, legend.location='i', legend.cex=1.0,
legend.point.text=c('transfusion','AIDS diagnosis','death','censored'),
x.reference='infedate', x.julian=TRUE,
legend.bty='o', legend.point.at = list(c(1400, 1950), c(7, -1)))
# To produce more complicated interval chart which is
# referenced by infection date, and sorted by age and incubation period:
# postscript('example3.ps', horizontal=TRUE)
event.chart(cdcaids,
subset.c=c('infedate','diagdate','dethdate','censdate'),
x.lab = 'time since diagnosis of AIDS (in days)',
y.lab='patients (sorted by age and incubation length)',
titl='AIDS data interval event chart 2 (sorted by age, incubation)',
point.pch=c(1,2,15,0), point.cex=c(1,1,0.8,0.8),
legend.plot=TRUE, legend.location='i',legend.cex=1.0,
legend.point.text=c('transfusion','AIDS diagnosis','death','censored'),
x.reference='diagdate', x.julian=TRUE, sort.by=c('age','diffdate'),
line.by='age', line.lty=c(1,3,2,4), line.lwd=rep(1,4), line.col=rep(1,4),
legend.bty='o', legend.point.at = list(c(-1350, -800), c(7, -1)),
legend.line.at = list(c(-1350, -800), c(16, 8)),
legend.line.text=c('age = 1', ' = 2', ' = 3', ' = 4'))
# To produce the Goldman chart:
# postscript('example4.ps', horizontal=TRUE)
event.chart(cdcaids,
subset.c=c('infedate','diagdate','dethdate','censdate'),
x.lab = 'time since transfusion (in days)', y.lab='dates of observation',
titl='AIDS data Goldman event chart 1',
y.var = c('infedate'), y.var.type='d', now.line=TRUE, y.jitter=FALSE,
point.pch=c(1,2,15,0), point.cex=c(1,1,0.8,0.8), mgp = c(3.1,1.6,0),
legend.plot=TRUE, legend.location='i',legend.cex=1.0,
legend.point.text=c('transfusion','AIDS diagnosis','death','censored'),
x.reference='infedate', x.julian=TRUE,
legend.bty='o', legend.point.at = list(c(1500, 2800), c(9300, 10000)))
# To convert coded time-to-event data, then, draw an event chart:
surv.time <- c(5,6,3,1,2)
cens.ind <- c(1,0,1,1,0)
surv.data <- cbind(surv.time,cens.ind)
event.data <- event.convert(surv.data)
event.chart(cbind(rep(0,5),event.data),x.julian=TRUE,x.reference=1)
Run the code above in your browser using DataLab