2012-12-09 9 views
5

Desidero sommare i valori in ogni colonna di un frame per settimana. Posso fare la media, ma la somma non funziona per qualche motivo:Somma di valori entro una settimana

> 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 

Cosa sta succedendo?

risposta

8

Questa è una conseguenza del fatto che le xts autori hanno deciso di aggiungere un metodo mean.xts per simulare il comportamento precedente della base R (e che è essenzialmente colMeans). mean.xts viene inviato sugli oggetti xts anziché mean.default e apply.weekly converte temporaneamente l'oggetto zoo in un xts internamente.

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 

Ma, credo che questo è ciò che si vuole fare:

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, ma notare che questo è solo momento vero per XTS su R-Forge. 'mean.xts' non è registrato in * xts_0.8-8 * su CRAN. –

+0

@JoshuaUlrich cosa dire 'apply.weekly (zoo.data, var)' o 'apply.weekly (zoo.data, sd)'? Sono passati alla ricerca del motivo per cui non funzionano come 'mean' – Tunn

+0

@JoshuaUlrich ha ottenuto https://stackoverflow.com/a/9242189/5823517. Ottimo pacchetto a proposito. – Tunn

Problemi correlati