2017-05-14 12 views
0

私は残念ながら、私は残念ながら正しい(Rには新しくなった)ようには見えないという簡単な質問をしています。 ラップカウントを表す変数があります。私はそれがカウントを続行したいと思っていますが、しばらくの間、ラップカウントはリセットされました。ラップカウントを続ける方法

私が調査したことから、これを行うにはループが必要になるかもしれませんが、私は働かせることができません。

誰かが私を助けるように親切なことができますか?

ありがとうございます!

dataset <- data.frame(lap = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,2,2,2,2,3,3,3,1,1,1,2,2,2,2)) 

expected outcome<-data.frame(lap = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,9,9)) 

答えて

0

を使用できrle、各繰り返し数字の時間をカウントし、その後、repを使用して値を再構築:ここ

は、例えば、データセットと予想される結果です。

lap <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,1,1,1,2,2,2,2,3,3,3,1,1,1,2,2,2,2) 
rle_lap <- rle(lap) 
expected <- data.frame(lap = rep(1:length(rle_lap$lengths), rle_lap$lengths)) 
+0

ありがとう!この助けを借りてうれしいです。この機能を知らなかったので、これを探すことも決して考えなかったでしょう! –

0

またdplyrでそれを行うことができます。素晴らしい作品

library(dplyr) 
dataset %>% mutate(expected = cumsum(lap != dplyr::lag(lap, 1, default = 0))) 
関連する問題