创建一定值的连续运行计数器

Man*_*ias 3 r

我想在SOG列中创建一个连续运行零的计数器.

对于SOG中第一个0序列,将Stops列中的计数器设置为1.对于第二个零运行,将"Stops"设置为2,依此类推.

SOG Stops
--- -----
4   0
4   0
0   1
0   1
0   1
3   0
4   0
5   0
0   2
0   2
1   0
2   0
0   3
0   3
0   3
Run Code Online (Sandbox Code Playgroud)

Rol*_*and 7

SOG <- c(4,4,0,0,0,3,4,5,0,0,1,2,0,0,0)
#run length encoding:
tmp <- rle(SOG)
#turn values into logicals
tmp$values <- tmp$values == 0
#cumulative sum of TRUE values
tmp$values[tmp$values] <- cumsum(tmp$values[tmp$values])
#inverse the run length encoding
inverse.rle(tmp)
#[1] 0 0 1 1 1 0 0 0 2 2 0 0 3 3 3
Run Code Online (Sandbox Code Playgroud)