किसी mts ऑब्जेक्ट पर लागू (या sapply) का उपयोग करना फ़ंक्शन पर भेजते समय इसकी टाइम श्रृंखला गुणों को हटा देता है। मुझे एमटीएस ऑब्जेक्ट में प्रत्येक बार श्रृंखला पर एक ही फ़ंक्शन (टीएस इनपुट और टीएस आउटपुट के साथ) कैसे लागू करना चाहिए और इसे वापस करना (अधिमानतः एमटीएस के रूप में) [मेरा मतलब है लूप के लिए उपयोग करने के अलावा]?एमटीएस ऑब्जेक्ट्स पर फ़ंक्शंस के परिवार को लागू करने का उपयोग करना
उदाहरण के लिए मैं एक समारोह है कि एक नमूना मीटर
z <- ts(matrix(rnorm(90), 30, 3), start=c(1961, 1), frequency=4)
class(z)
केवल समय श्रृंखला कार्यों में से एक के लिए भेजा जा रहा है अब एक समय श्रृंखला की प्रवृत्ति (एसटीएल का उपयोग कर)
myfunc <- function(x) {
return(stl(x,"per")$time.series[,2])
}
रिटर्न लिखने मान लें कि सही:
myfunc(z[,1]) # works correctly, returns the trend of first series
मेरा फ़ंक्शन एकाधिक समय श्रृंखला के लिए डिज़ाइन नहीं किया गया है:
myfunc(z) # will not work returning the error below
Error in stl(x, "per") : only univariate series are allowed
मीटर पर लागू होते हैं का उपयोग करते हुए आपत्ति वेक्टर के रूप में समय श्रृंखला के प्रत्येक भेजने के लिए, अपने समय श्रृंखला गुण (चम्मच) संरक्षण नहीं:
apply(z,2,myfunc) # will not work returning the error below
Error in stl(x, "per") :
series is not periodic or has less than two periods
सच है, 'लागू' विशेषताएँ हटा देगा, लेकिन 'sapply' ऐसा नहीं करना चाहिए। 'ts' ऑब्जेक्ट अजीब हैं। उनके पास अक्सर प्रिंटिंग विधियां होती हैं जो उपयोगकर्ता को उनके वास्तविक ढांचे के रूप में गुमराह करती हैं, इसलिए आपको उन पर str() का उपयोग करना चाहिए। –
क्या आप कृपया मेरे उदाहरण के लिए sapply का उपयोग करने पर कोड प्रदान करेंगे? मैंने पाया कि सपने में एक ही त्रुटि उठाई गई है क्योंकि यह सिर्फ कॉल ही लागू होती है। –
और 'ts' वस्तुओं अजीबता के बारे में! मैं किसी भी मुद्रण विधि का उपयोग या भरोसा नहीं करता हूं, मुझे _do_ को अपनी टाइम श्रृंखला गुणों, यानी 'tsp', जो कि लंबाई 3 का एक वेक्टर है, की शुरुआत, अंत और समय श्रृंखला डेटा की आवृत्ति को इंगित करने की आवश्यकता है –