查找和计数符合条件的连续观察

时间:2019-06-04 20:48:44

标签: r dplyr

我想统计有连续观察符合条件的次数。例如。在下面的foo中,我想统计三月月份中y的连续值小于该月y平均值的一个标准偏差的天数。我的数据布局像foo

library(lubridate)
foo <- data.frame(x=seq.Date(as.Date("1981/1/1"), 
                             as.Date("2000/12/31"), "day"))
foo$y <- arima.sim(n = nrow(foo), list(ar = c(0.8)))

我已经弄清楚了如何计算每年y低于均值一个标准差的每年三月的天数:

bar <- foo %>% filter(month(x) == 3 & y < mean(y)-sd(y)) %>% 
  group_by(year(x)) %>% tally()

我希望仅当满足条件的日期连续时才使用此计数。例如,如果3月的平均温度为0且标准差为1,1990年的3月5日,6和7均低于-1,则1990年的计数为3。如果3月21日的平均值也<-1但是3月20日和22日的值都不是<-1,则计数仍然是3,因为3月21日没有邻居的值也<-1。

我想象rle会发挥作用,但我不知道该怎么做。

任何建议表示赞赏。

0 个答案:

没有答案