2012-12-09 12 views
5

Chcę podsumować wartości w każdej kolumnie ramki po tygodniu. Mogę to zrobić, ale suma nie działa z jakiegoś powodu:Suma wartości w ciągu tygodnia

> zoo.data <- zoo(data.frame(x=11:20,y=1:10),as.Date(1:10,origin="1970-01-01")) 
> apply.weekly(zoo.data, mean) 
      x y 
1970-01-04 12 2 
1970-01-11 17 7 
> apply.weekly(zoo.data, sum) 
1970-01-04 1970-01-11 
     42  168 

Co się dzieje?

Odpowiedz

8

Wynika to z faktu, że XTS autorzy postanowili dodać metodę mean.xts naśladować starego zachowania zasady R (i która jest zasadniczo colMeans). mean.xts jest teraz wysyłane na obiektach xts zamiast mean.default, a apply.weekly tymczasowo konwertuje obiekt zoo na obiekt wewnętrzny xts.

R> apply.weekly(zoo.data, mean) 
      x y 
1970-01-04 12 2 
1970-01-11 17 7 
R> apply.weekly(zoo.data, mean.default) 
1970-01-04 1970-01-11 
     7   12 

Ale myślę, że to, co chcesz zrobić:

R> apply.weekly(zoo.data, colMeans) 
      x y 
1970-01-04 12 2 
1970-01-11 17 7 
R> apply.weekly(zoo.data, colSums) 
      x y 
1970-01-04 36 6 
1970-01-11 119 49 
+2

+1, ale należy pamiętać, jest to jedyny obecnie prawdziwe dla XTS na R-Forge. 'mean.xts' nie jest zarejestrowany w * xts_0.8-8 * na CRAN. –

+0

@JoshuaUlrich co z 'apply.weekly (zoo.data, var)' lub 'apply.weekly (zoo.data, sd)'? Szukałem w okolicy, dlaczego nie działają jak "znaczy" – Tunn

+0

@JoshuaUlrich dostał go https://stackoverflow.com/a/9242189/5823517. Świetny pakiet przy okazji. – Tunn