我有以下数据。
DOY <- c(1:30) #Day of Year
rain <- c(0,0,0,0,0,0,0,5.5,15.5,20.1,10.4,0,0,0,0,0,0,0,0,7.6,19.2,44.5,3.4,5.5,0,0,0,0,0,0)
DF <- data.frame(DOY=DOY,rain=rain)
我只对下雨的日子、降雨事件感兴趣。
DF <- DF[DF$rain > 0,]
df
的输出,这是降雨事件:
DOY rain
8 5.5
9 15.5
10 20.1
11 10.4
20 7.6
21 19.2
22 44.5
23 3.4
24 5.5
在我的示例中,我有两个降雨事件。如果连续几天不下雨,则始终是一个新事件。
现在我想为每个降雨事件分配一个 ID
。像这样的东西是我的预期输出。
DOY rain ID
8 5.5 1
9 15.5 1
10 20.1 1
11 10.4 1
20 7.6 2
21 19.2 2
22 44.5 2
23 3.4 2
24 5.5 2
最佳答案
您可以使用:
cumsum(+c(TRUE, diff(DF$DOY) > 1))
关于r - 如何为数据框中的事件分配特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268103/