Returns an index of positions. Intended for evaluating a step function at selected times. The function counts how many elements of a vector, e.g. the jump times of the step function, are smaller or equal to the elements in a second vector, e.g. the times where the step function should be evaluated.
sindex(jump.times, eval.times, comp = "smaller", strict = FALSE)
Numeric vector: e.g. the unique jump times of a step function.
Numeric vector: e.g. the times where the step function should be evaluated
If "greater" count the number of jump times that are greater (greater or equal when strict==FALSE) than the eval times
If TRUE make the comparison of jump times and eval times strict
Index of the same length as eval.times
containing the numbers
of the jump.times
that are smaller than or equal to
eval.times
.
If all jump.times
are greater than a particular eval.time
the
sindex returns 0
. This must be considered when sindex is used for
subsetting, see the Examples below.
test <- list(time = c(1, 1,5,5,2,7,9),
status = c(1,0,1,0,1,1,0))
fit <- prodlim(Hist(time,status)~1,data=test)
jtimes <- fit$time
etimes <- c(0,.5,2,8,10)
fit$surv
#> [1] 0.8571429 0.6857143 0.5142857 0.2571429 0.2571429
c(1,fit$surv)[1+sindex(jtimes,etimes)]
#> [1] 1.0000000 1.0000000 0.6857143 0.2571429 0.2571429