R中的连续组号

Man*_*ias 1 r

此问题与R中列值更改后的连续值非常相似

因此对于

SOG <- c(4,4,0,0,0,3,4,5,0,0,1,2,0,0,0)
Run Code Online (Sandbox Code Playgroud)

不同的是,现在我想算出有多少组SOG.例如:

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

任何人?

smc*_*mci 5

假设您的意思是"SOG组"是一组连续的非零SOG值,即以非零SOG值开始并以非零SOG值结束(不一定是相同的值):

Trips <- ifelse(SOG>0, cumsum(c(SOG[1]>0, diff(SOG>0)) == 1), 0)
# [1] 1 1 0 0 0 2 2 2 0 0 3 3 0 0 0
Run Code Online (Sandbox Code Playgroud)