我有每日时间序列的风速,我希望R将连续天数的平均和最大长度返回到某个阈值以下。
示例(阈值= 2 m / s):
df >
date wind_speed
1970-01-01 1
1970-01-02 1
1970-01-03 3
1970-01-04 1
1970-01-05 1
1970-01-06 1
1970-01-07 3
1970-01-08 1
因此。在这个例子中,2米/秒以下的连续天数的最大长度为“3”,平均长度为“2”。 有没有办法在R中为大型数据集执行此操作?
提前致谢
答案 0 :(得分:0)
未测试
library(dplyr)
treshold <- 2
df %>%
filter(wind_speed < treshold) %>%
arrange(date) %>%
mutate(
break = date - lag(date) > 1,
series = cumsum(break)
) %>%
group_by(series) %>%
summarise(
length = n(),
)