计算元素在序列中重复的次数(R)

计算元素在序列中重复的次数(R),r,sequence,R,Sequence,我有一个事件序列,编码为a、B和C。对于每个元素,我需要计算这个元素之前重复了多少次。例如: x<-c('A','A','A','B','C','C','A','B','A','C') y<-c(0,1,2,0,0,1,0,0,0,0) cbind(x,y) x y [1,] "A" "0" [2,] "A" "1" [3,] "A" "2" [4,] "B" "0" [5,] "C" "0" [6,] "C" "1" [7,] "A" "0" [8,] "B"

我有一个事件序列,编码为a、B和C。对于每个元素,我需要计算这个元素之前重复了多少次。例如:

x<-c('A','A','A','B','C','C','A','B','A','C')
y<-c(0,1,2,0,0,1,0,0,0,0)
cbind(x,y)

     x   y  
[1,] "A" "0"
[2,] "A" "1"
[3,] "A" "2"
[4,] "B" "0"
[5,] "C" "0"
[6,] "C" "1"
[7,] "A" "0"
[8,] "B" "0"
[9,] "A" "0"
[10,] "C" "0"

x使用
rle
序列的组合:

> sequence(rle(x)$lengths)-1
 [1] 0 1 2 0 0 1 0 0 0 0