有效计数器,用于计算生存时间(R)中的结数
生存时间是在有效计数器,用于计算生存时间(R)中的结数,r,performance,counter,R,Performance,Counter,生存时间是在x中大小为1 x n的有序向量中给出的数值时间度量。对于x中的两个时间点,平局被定义为x[i]==x[j],其中排序强制i和j相邻,i+1==j,或者如果所有中间时间都是平局,则k索引分开 给定x我需要一个有效的计数器,该计数器返回(1)唯一时间向量(无双精度),(2)每次一个tie计数 下面是我的基本代码。有没有更有效的方法 我们有时会在指数5和6以及9和10上出现联系 x = 1:10 x[5] = 6 x[10] = 9 领带识别器: x_new <- ties <
x
中大小为1 x n
的有序向量中给出的数值时间度量。对于x
中的两个时间点,平局被定义为x[i]==x[j]
,其中排序强制i
和j
相邻,i+1==j
,或者如果所有中间时间都是平局,则k
索引分开
给定x
我需要一个有效的计数器,该计数器返回(1)唯一时间向量(无双精度),(2)每次一个tie计数
下面是我的基本代码。有没有更有效的方法
我们有时会在指数5和6以及9和10上出现联系
x = 1:10
x[5] = 6
x[10] = 9
领带识别器:
x_new <- ties <- numeric()
n <- length(x)
i = 1; k=1
while( i <= n ){
d = NA
if(i+1<=n) {d = x[i] - x[i+1]}
j = 0
while(d==0 & (i+j+1)<=n){
j = j + 1
d = x[i] - x[i+j+1]
}
x_new[k] = x[i]
ties[k] = j + 1
i = i + j + 1
k = k + 1
}
只需使用
rle
sapply(rle(sort(x)), cbind)
# lengths values
#[1,] 1 1
#[2,] 1 2
#[3,] 1 3
#[4,] 1 4
#[5,] 2 6
#[6,] 1 7
#[7,] 1 8
#[8,] 2 9
是否要
rle(x)
?根据向量的定义,领带只能排成一行。因此,我认为table(x)
或data.frame(table(x))
也可以。@AntoniosK true我现在意识到我需要显式代码,因为在第一个循环中需要执行另一个操作。见下面的评论。也许我会回答这个问题谢谢。我需要显式的代码,因为对于每个I
,需要对另一个长度相同的x
变量执行额外的操作,我在代码中省略了该变量。但对于我提出的问题,你的答案是详尽无遗的。也许我会回答我的问题。
sapply(rle(sort(x)), cbind)
# lengths values
#[1,] 1 1
#[2,] 1 2
#[3,] 1 3
#[4,] 1 4
#[5,] 2 6
#[6,] 1 7
#[7,] 1 8
#[8,] 2 9