Uśrednianie dziennych danych do danych tygodniowych
Zastanawiam się, czy istnieje sposób na przeciętne dzienne dane na dane tygodniowe. Ramka danych, którą nazywam CADaily wygląda tak:
> CADaily[1:10, ]
Climate_Division Date Rain
885 1 1948-07-01 0.8750000
892 1 1948-07-02 2.9166667
894 1 1948-07-03 0.7916667
895 1 1948-07-04 0.4305556
898 1 1948-07-05 0.8262061
901 1 1948-07-06 0.5972222
904 1 1948-07-17 0.04166667
905 1 1948-07-18 0.08333333
907 1 1948-07-20 0.04166667
909 1 1948-07-22 0.12500000
910 1 1948-07-21 NA
Mój cel jest podobny do funkcji agregującej, aby znaleźć średnią dziennego deszczu w tygodniowych wartościach deszczu na podstawie daty (oczywiście) i Climate_Division (zakresy od 1 do 7). Szukałem w Internecie i natknąłem się na kod, którego mogłem użyć, ale nie do końca zgadzał się z moim celem:
apply.weekly(xts(CADaily[,-2], order.by= CADaily[,2]), FUN = mean)
To robi to, co chciałbym zrobić, ale moja kolumna Climate_Division jest również uśredniona. Chciałbym po prostu uśrednić tylko Rain i zamówić go na podstawie Climate_Division, a następnie Date. Czy jest jakiś sposób, że mogę to zrobić w następujący sposób:
aggregate(CADaily, by =list(CADaily$Climate_Division, CADaily$Date), FUN = mean, na.rm = TRUE)
gdzie Data jest w jakiejś formie tygodni? Czy jest inny sposób?
EDYTOWAĆ:
Drodzy zebrani,
Dziękuję za pomoc. Być może użycie agregatu nie było najlepszym sposobem na to, jak pierwotnie sądziłem. Jeśli chodzi o wydajność, chciałem uzyskać tygodniową średnią deszczu przez lata danych (1948 - 1995). Innymi słowy, chciałem uzyskać ładny format, który mogę wprowadzić do szeregu czasowego w postaci daty końca tygodnia. Rezultatem, którego szukam (pamiętając, że mogą istnieć wartości NA), jest:
Climate_Division Date Rain
1 1948-07-03 1.527778
1 1948-07-10 0.6179946
1 1948-07-17 0.04166667
1 1948-07-24 0.08333333
...
1 1995-12-23 0.24513245
1 1995-12-30 0.12450545
Czy istnieje lepszy sposób wyrażania danych tygodniowych, który jest reprezentowany przez daty?
Dziękuję za pomoc.