Мой вопрос связан с другим моим вопросом , но это не совсем то же самое.
Предположим, у меня есть это:
DOY <-c (1:30) # Day of Year
rain <-c (0,0,0,0,0,0,10,0,0,20,10,5,0,0,0,0,0,0,0,5,20,45,5,2,0,0,0,10,0,0)
DF <- data.frame(DOY=DOY, rain=rain)
# Just interested in days with rain
DF <- DF[DF$rain > 0,]
# assign ID for each rainfall event, but only if Difference in days is >4
DF$ID <-c (1,1+cumsum(diff(DF$DOY) > 4))
# Rerranging, so I have the highest value at top for each group
DF <- DF %>%
group_by(ID) %>%
arrange(desc(rain),.by_group=TRUE)
Мой DF
выглядит такthis:
DOY rain ID
10 20 1
7 10 1
11 10 1
9 9 1
12 5 1
22 45 2
21 20 2
28 10 2
20 5 2
23 5 2
24 2 2
Но нужны только дни, которые являются последовательными от дня максимального значения. Мой ожидаемый результат должен быть таким:
DOY rain ID
10 20 1
11 10 1
9 9 1
12 5 1
22 45 2
21 20 2
20 5 2
23 5 2
24 2 2
Строки с DOY = 7 и DOY 28 должны быть удалены в моем случае, все остальные DOY сохраняются.