我想在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)
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)
归档时间: |
|
查看次数: |
566 次 |
最近记录: |