वहाँ किसी तरह अनुकूलित कार्य (rollmean
, rollmedian
आदि) (zoo
पैकेज या कुछ इसी तरह से) rollapply उपयोग करने के लिए समय-आधारित खिड़की के साथ रोलिंग कार्यों की गणना करने के बजाय है, कई अवलोकनों के आधार पर? मैं जो चाहता हूं वह सरल है: अनियमित समय श्रृंखला में प्रत्येक तत्व के लिए, मैं एक रोलिंग फ़ंक्शन को एन-डेज़ विंडो के साथ गणना करना चाहता हूं। यही है, खिड़की को वर्तमान अवलोकन से पहले एन दिनों तक सभी अवलोकनों को शामिल करना चाहिए। समय श्रृंखला में डुप्लीकेट भी हो सकते हैं।अनुकूलित रोलिंग कार्यों
यहां एक उदाहरण का पालन किया गया है।
date value
1/11/2011 5
1/11/2011 4
1/11/2011 2
8/11/2011 1
13/11/2011 0
14/11/2011 0
15/11/2011 0
18/11/2011 1
21/11/2011 4
5/12/2011 3
एक 5 दिन की अवधि, सही करने के लिए गठबंधन के साथ एक रोलिंग मंझला, निम्नलिखित गणना में परिणाम चाहिए: निम्नलिखित समय श्रृंखला को देखते हुए
> c(
median(c(5)),
median(c(5,4)),
median(c(5,4,2)),
median(c(1)),
median(c(1,0)),
median(c(0,0)),
median(c(0,0,0)),
median(c(0,0,0,1)),
median(c(1,4)),
median(c(3))
)
[1] 5.0 4.5 4.0 1.0 0.5 0.0 0.0 0.0 2.5 3.0
मैं पहले से ही कुछ समाधान वहाँ पता चला लेकिन वे आमतौर पर मुश्किल होते हैं, जो आमतौर पर धीमी गति से होता है। मैं अपनी खुद की रोलिंग फ़ंक्शन गणना लागू करने में कामयाब रहा। समस्या यह है कि बहुत लंबे समय तक श्रृंखला के लिए औसत (रोलमेडियन) का अनुकूलित संस्करण एक बड़ा समय अंतर कर सकता है, क्योंकि यह विंडोज़ के बीच ओवरलैप को ध्यान में रखता है। मैं इसे पुन: कार्यान्वित करने से बचना चाहता हूं। मुझे संदेह है कि रोलप्ली पैरामीटर के साथ कुछ चाल है जो इसे काम करेगी, लेकिन मैं इसे समझ नहीं सकता। मदद के लिए अग्रिम धन्यवाद।
'रोलप्ली' के साथ ऐसा करने का कोई तरीका नहीं है। आप 'विंडो' का उपयोग करके अपना स्वयं का फ़ंक्शन (इच्छित इरादा) रोल कर सकते हैं। –
क्या यह प्रश्न और किसी भी सहायता का उत्तर है? http://stackoverflow.com/questions/10465998/sliding-time-intervals-for-time-series-data-in-r – thelatemail
'rollmedly' 'cheats" को' rollmedian' 'कॉल करके अगर आप' median' को मजेदार के रूप में उपयोग करते हैं ' । तुलना करें: 'system.time (रोलप्ली (रनिफ़ (100000), 5, फ़ंक्शन (एक्स) औसत (x))) 'to system.time (रोलप्ली (रनिफ़ (100000), 5, औसत))' (पूर्व 30x है और धीमा)। यदि आप चाहते हैं कि गति 'धोखाधड़ी' के बिना 'रोलप्ली' के बिना तुलनीय हो, तो मैं कुछ समाधान प्रदान कर सकता हूं। इसके अतिरिक्त, 'रोलमेडियन' भी उतना ही "धोखा देती है" जितना अजीब अवलोकन की आवश्यकता होती है, इसलिए स्पष्ट रूप से यह केवल "मध्य" मानों की एक अनुक्रमणिका को परिभाषित कर रहा है, जो आप जो करने की कोशिश कर रहे हैं उससे तुलना में तुच्छ है। – BrodieG