Ich versuche den jährlichen mittleren Niederschlag für jedes Jahr zwischen 1950-2015 für mehrere Messstationen zu extrahieren. Der Niederschlagsdatensatz besteht aus täglichen Messungen.Bedingtes Entfernen von Zeilen für gruppierte Daten in R
Bevor ich das jährliche Mittel für jede einzelne Station berechne, muss ich die Daten filtern, so dass jeder Monat Daten von mehr als 15 Tagen haben muss.
Wie könnte dies in R getan werden?
Lassen Sie diese ein funktionierendes Beispiel sein:
id<-rep(c("Station_1","Station_2","Station_3"),length(1),each=1080)
year<-rep(c(1950:1952),length(1:3),each=360)
month <- rep(c(1:12),length(1:9),each=30)
day <- rep(c(1:30),length(1:108))
value<-runif(3240, min=0, max=10)
df<-data.frame(cbind(id,year,month,day,value))
Ich habe versucht, so etwas wie:
result<-df %>%
group_by(id,year,month) %>%
summarise(No._of_days=n(),mean_month=mean(value))
result<-result[!(result$No._of_days<15),]
result<-result %>%
group_by(id,year) %>%
summarise(No._of_months=n(),mean_year=mean(mean_month))
jedoch diese auf die falsche Lösung führt, wie ich „von einem Mittelwert einer mittleren“ nehme.
Vielen Dank für jeden Hinweis.
Bitte beenden Sie die Verwendung von 'data.frame (cbind (...))' '. 'data.frame()' ist ausreichend. Schauen Sie sich "data.frame" an. – Arun
Danke Sathish, Aichao, Sebolus und NJBurgo für Ihre schnelle und korrekte Antworten - Ihre Hilfe wird sehr geschätzt! Alle Lösungen funktionieren, aber ich bleibe bei aichaos einfach so, wie ich am liebsten mit dplyr arbeite. Tut mir leid, dass ich den Datenframe falsch formuliere - ich werde "so wie es ist" jetzt verlassen, weil jeder hier einen guten Kommentar hinzugefügt hat, wie man ihn richtig strukturiert. –