A、B、Cとコード化された一連のイベントがあります。各要素について、この要素が何回繰り返されたかをカウントする必要があります以前は繰り返されていない場合、カウンターは各行ごとに1つずつ減少します。各項目の最初の出会いには、それに対するカウンターはゼロです。例:シーケンス内の要素の繰り返し回数または反復回数を数えます。
x<-c('A','A','A','B','C','C','A','B','A','C')
y<-c(0,1,2,0,0,1,-2,-4,-4,-3)
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" "-2"
[8,] "B" "-4"
[9,] "A" "-4"
[10,] "C" "-3"
xから列yを生成する必要があります。私は実行の長さのためにrle
を使うことができることを知っていますが、カウンターが減少する特定のイベントの最後の出会いから時間を得る方法はわかりません。
申し訳ありませんが、小さな間違いは、行7の値は-2にする必要があります。行7のイベント== 'A'の場合、前の 'A'カウンタの値は2(行3)だったので、行4のカウンタ= 1、行5のカウンタ= 0、行6のカウンタ= -1、行7カウンター= -2。同じことがBにも当てはまります - Bの最後のカウンタ値は0で、前のBから4行ありました。現在のイベントが前の行と同じ場合はカウンタが1増加し、イベントタイプごとに個別のカウンタがあります。 –
行9のA値も修正しましたが、間違いがあります。私は物を数えると何が起こるか。 –