有四个时间间隔
[0, 3), [3, 10), [10, 12), and [12, Inf)
和我们有生存时间的三个科目
10.3, 0.7, 12.2
我想构建一个包含三行(每个人一个)和四列(每个时间间隔一个)的矩阵,其中包含每个人在每个时间间隔内花费的时间。
对于这个特定的例子,我们有
3.0 7 0.3 0.0
0.7 0 0.0 0.0
3.0 7 2.0 0.2
你能帮我弄到这个R
吗?我们的想法是将其应用于远大于 3 的 N。
我的尝试:
breaks <- c(0, 3, 10, 12, Inf) # interval break points
M <- length(breaks) - 1 # number of intervals
time <- c(10.3, 0.7, 12.2) # observed survival times
N <- length(time) # number of subjects
timeSpent <- matrix(NA, nrow=N, ncol=M)
for(m in 1:M)
{
ind <- which(breaks[m + 1] - time > 0)
timeSpent[ind, m] <- time[ind] - breaks[m]
timeSpent[-ind, m] <- breaks[m + 1] - breaks[m]
}
timeSpent <- replace(x=timeSpent, list=timeSpent < 0, values=0)