2016-05-11 9 views
-1

Ich habe eine tägliche Zeitreihe von Windgeschwindigkeiten und ich möchte, dass R die durchschnittliche und maximale Länge von aufeinanderfolgenden Tagen unterhalb einer bestimmten Schwelle zurückgibt.R Werte unter Schwelle

Beispiel (Threshold = 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. In diesem Beispiel wäre die maximale Länge von aufeinanderfolgenden Tagen unter 2 m/s "3" und die durchschnittliche Länge wäre "2". Gibt es eine Möglichkeit, dies in R für große Datensätze zu tun?

Vielen Dank im Voraus

+0

Vielleicht max verwenden und auf subsetted Daten bedeuten? 'max (df [df $ wind_speed> Schwelle," wind_speed "])' und 'mean (df [df $ wind_speed> Schwelle," wind_speed "])' – zx8754

Antwort

0

Ungeprüfte

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(), 
)