2012-12-09 13 views
5

Ich möchte die Werte in jeder Spalte eines Frames nach Woche summieren. Ich kann das tun, aber die Summe funktioniert nicht aus irgendeinem Grund:Summe der Werte innerhalb einer Woche

> 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 

Was ist los?

Antwort

8

Dies ist ein Ergebnis der Tatsache, dass die xts Autoren entschieden haben, eine mean.xts Methode hinzufügen, um das alte Verhalten von Basis R zu imitieren (und das ist im Wesentlichen colMeans). mean.xts ist jetzt auf xts Objekte anstelle von mean.default versandt, und apply.weekly konvertiert vorübergehend Ihr zoo Objekt zu einem xts intern.

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 

Aber ich denke, das ist, was Sie tun möchten:

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, aber beachten Sie, das für xts auf R-Forge nur noch wahr ist. 'mean.xts' ist nicht in * xts_0.8-8 * auf CRAN registriert. –

+0

@JoshuaUlrich was ist mit 'apply.weekly (zoo.data, var)' oder 'apply.weekly (zoo.data, sd)'? Suche nach Gründen, warum sie nicht funktionieren wie 'gemein ' – Tunn

+0

@JoshuaUlrich bekam es https://Stackoverflow.com/a/9242189/5823517. Tolles Paket übrigens. – Tunn