Description Usage Arguments Author(s) Examples
Time-dependent hazard long array representation of time-to-event data.
1 |
survData |
|
covariates |
vector of covariate names (column headings) in |
type |
which model to use, cause-specific or subdistribution (Fine & Gray) |
N Green
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (survData, covariates, type)
{
if (type == "alive") {
time <- survData$time2disch
}
else if (type == "death") {
time <- survData$time2death
}
else if (type == "") {
time <- survData$time
}
rows.inf <- survData$infstatus == 1
survData.inf <- survData[rows.inf, ]
survData.mix <- survData[!rows.inf, ]
ninf <- rep(1:nrow(survData.inf), each = 2)
epsilon <- 0.5
time.inf <- time[rows.inf]
time.mix <- time[!rows.inf]
originalid <- 0
tvdata.inf <- data.frame(id = ninf, tstart = NA, tstop = NA,
inf = NA, disch = NA, death = NA, survData.inf[ninf,
c("infstatus", covariates)])
numRows.new <- nrow(tvdata.inf)
if (numRows.new > 0) {
for (i in seq(1, numRows.new, by = 2)) {
originalid <- originalid + 1
spectime <- survData.inf$spectime[originalid]
time.inf.id <- time.inf[originalid]
tvdata.inf[i, "tstart"] <- 0
tvdata.inf[i, "tstop"] <- ifelse(spectime == 0, epsilon,
spectime)
tvdata.inf[i, "disch"] <- 0
tvdata.inf[i, "inf"] <- 0
tvdata.inf[i, "death"] <- 0
tvdata.inf[i + 1, "tstart"] <- tvdata.inf[i, "tstop"]
tvdata.inf[i + 1, "tstop"] <- ifelse(time.inf.id ==
spectime, time.inf.id + epsilon, time.inf.id)
tvdata.inf[i + 1, "disch"] <- (1 - as.numeric(survData.inf$event[originalid])) &
survData.inf$missingType[originalid]
tvdata.inf[i + 1, "inf"] <- 1
tvdata.inf[i + 1, "death"] <- unlist(survData.inf$event[originalid]) &
survData.inf$missingType[originalid]
}
}
tvdata.mix <- data.frame(id = originalid + 10 + seq_along(survData.mix$time),
tstart = 0, tstop = ifelse(time.mix > 0, time.mix, epsilon),
inf = 0, disch = (1 - as.numeric(survData.mix[, "event"])) &
survData.mix[, "missingType"], death = unlist(survData.mix[,
"event"]) & survData.mix[, "missingType"], survData.mix[,
c("infstatus", covariates)])
tvdata <- rbind(tvdata.inf, tvdata.mix)
tvdata <- cbind(tvdata, status = tvdata$disch + (2 * tvdata$death))
tvdata <- tvdata[!is.na(tvdata[, "tstop"]), ]
names(tvdata)[which(names(tvdata) == "gender")] <- "sex"
names(tvdata)[which(names(tvdata) == "infstatus")] <- "originf"
tvdata
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.