Je suis nouveau à R donc je m'excuse si c'est une question de base. J'ai un df avec 12k jours de données de hauteur de la rivière. J'ai fait un filtre pour quand la rivière est> 28ft. Mais maintenant je voudrais casser cette df filtrée dans une liste pour quand la rivière est> 28 pi pendant x jours consécutifs. Ainsi par exemple si la rivière est> 28ft pendant 20 jours je voudrais que cela soit groupé ensemble.Comment faire une liste par dates étant dans une rangée dans R?
library(dplyr)
RawData <- read.csv("c:/Users/Anthony/Desktop/R/CSVRiverData.csv")
RiverData <- cbind(data.frame(as.Date(RawData$Row.Labels, format = "%m/%d/%Y")),
RawData$Average.of.height)
colnames(RiverData) <- c("Date","RiverHeight")
Filt_River_Data <- filter(RiverData,RiverData$RiverHeight >28)
Date_Diff <- data.frame(Filt_River_Data$Date - lag(Filt_River_Data$Date, 1L))
Voir '? Rle'. Parfois, il est utile de voler 'data.table :: rleid', par exemple. 'RiverData%>% group_by (jours_above_28 = data.table :: rleid (RiverHeight> 28))%>% filter (RiverHeight> 28, n()> 20)' Notez également que vous ne devez pas utiliser le sous-ensemble '$' verbes dplyr; il suffit de se référer directement à la variable, et il sait regarder dans le cadre de données que vous lui avez transmis. – alistaire