2012-12-09 42 views
5

मैं सप्ताह के आधार पर फ्रेम के प्रत्येक कॉलम में मानों को जोड़ना चाहता हूं। मैं मतलब कर सकता हूं, लेकिन योग कुछ कारणों से काम नहीं करता है:एक सप्ताह के भीतर मूल्यों का योग

> 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 

क्या चल रहा है?

उत्तर

8

इस तथ्य यह है कि XTS लेखकों एक mean.xts विधि जोड़ने का फैसला किया है आधार आर के पुराने व्यवहार की नकल करने के लिए का परिणाम है (और जो अनिवार्य रूप से colMeans है)। mean.xts अब xts पर mean.default के बजाय ऑब्जेक्ट्स पर भेजा गया है, और apply.weekly अस्थायी रूप से zoo ऑब्जेक्ट को 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 

लेकिन, मुझे लगता है कि यह आप क्या करना चाहते हैं:

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, लेकिन ध्यान दें कि यह केवल वर्तमान पर आर-फोर्ज XTS लिए सच है। 'mean.xts' CRAN पर * xts_0.8-8 * में पंजीकृत नहीं है। –

+0

@ जोशुआउलिच 'apply.weekly (zoo.data, var) 'या' apply.weekly (zoo.data, sd) 'के बारे में क्या है? चारों ओर खोज रहे थे क्यों वे 'मतलब' – Tunn

+0

@JoshuaUlrich जैसे काम नहीं करते हैं https://stackoverflow.com/a/9242189/5823517। रास्ते से महान पैकेज। – Tunn