2016-05-11 18 views
-1

私は毎日の風速の時系列を持ち、一定の閾値以下の連続した日の平均と最大の長さを返すようにします。閾値以下の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 

Soがこの例では、2m/s未満の連続日の最大長は「3」であり、平均長さは「2」である。 大きなデータセットの場合、これをRで行う方法はありますか?

+0

はたぶん最大を使用してサブセット化データに意味ですか? (wind_speed> threshold、 "wind_speed")) 'と' mean(df $ wind_speed> – zx8754

答えて

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(), 
) 
関連する問題