2016-05-11 4 views
-1

У меня есть дневной временной диапазон скоростей ветра, и я бы хотел, чтобы R возвращала среднюю и максимальную длину последовательных дней ниже определенного порога.Значения R под порогом

Пример (Порог = 2 м/с):

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

Возможно использовать максимальное и среднее на subsetted данных? 'max (df [df $ wind_speed> Порог," wind_speed "])' и 'mean (df [df $ wind_speed> Порог," 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(), 
) 

 Смежные вопросы

  • Нет связанных вопросов^_^