2012-10-15 32 views
7

Tôi có một chuỗi sự kiện, được mã hóa là A, B và C. Đối với mỗi phần tử tôi cần đếm số lần phần tử này được lặp lại trước đó. Ví dụ:Đếm số lần phần tử được lặp lại theo trình tự (trong R)

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" 

Tôi cần tạo cột y từ x.

Trả lời

13

Sử dụng một sự kết hợp của rlesequence:

> sequence(rle(x)$lengths)-1 
[1] 0 1 2 0 0 1 0 0 0 0 
Các vấn đề liên quan