Ich habe eine Zeitreihe von täglichen Niederschlagswerten, die 1838 beginnen und 2001 enden. Es gibt einige fehlende Tage in der Aufzeichnung, die mit einer NA codiert sind. Meine Daten nehmen die Form:Entfernen Sie alle Werte in einem Monat, in denen innerhalb dieses Monats irgendwelche NA-Werte auftreten.
Year Month Day PPT
1838 1 1 0.0
1838 1 2 NA
1838 1 3 1.3
1838 1 4 0.6
ich jetzt eine Aggregatfunktion bin mit den täglichen Niederschlagssummen in Monatsmittel pro Jahr der Aufzeichnung summieren mit:
aggregate(PPT~Year, df, sum)
Dies funktioniert gut, aber das Problem ist, dass einige der monatlichen aggregierten Summen nicht echt sind. Wenn zum Beispiel im Januar 1838 20 fehlende Tage vorlägen, wäre die aggregierte Summe für diesen Monat nicht echt.
Was ich tun möchte, ist für meine aggregierte Funktion nicht aggregierte Summen für Monate mit fehlenden Tagen (NA) zurückzugeben, d. H. Wenn sogar nur 1 Tag fehlt, möchte ich den Monat nicht zurückgegeben werden. Alternativ könnte ich alle Monate, die irgendwelche NA-Werte enthalten, vor der Aggregation entfernen.
Versuchen Sie 'sum (c (NA, 1,2,3))'. – zx8754
Dies erzeugt einen einzelnen NA-Wert und hilft leider nicht in dieser Situation. –
Es war nur ein Tipp, wir könnten nach JahrMonat aggregieren, um Summen aus Monaten zu entfernen, die nicht * echt * sind, und dann nach Jahr aggregieren. – zx8754