2010-07-11 12 views
8

मैं स्टैक ओवरफ्लो के लिए नया हूं और आर के लिए बिल्कुल नया हूं लेकिन लंबे और कठिन खोजे हैं और निम्नलिखित प्रश्न का उत्तर नहीं मिल पा रहे हैं।मैं आर में एक समय श्रृंखला (एक्सटीएस या चिड़ियाघर) कैसे बदल सकता हूं?

मेरे पास कई डेटा फ़ाइलें हैं जो एक समय श्रृंखला के खिलाफ तापमान हैं। मैं एक ZOO ऑब्जेक्ट के रूप में CSV आयात कर रहा हूं और फिर XTS में परिवर्तित कर रहा हूं। एक सही फ़ाइल ऐसा दिखाई देता है घंटे पर रीडिंग और आधे घंटे के साथ:

>head(master1) 
         S_1 
2010-03-03 00:00:00 2.8520 
2010-03-03 00:30:00 2.6945 
2010-03-03 01:00:00 2.5685 
2010-03-03 01:30:00 2.3800 
2010-03-03 02:00:00 2.2225 
2010-03-03 02:30:00 2.0650 

लेकिन कुछ पर समय मूल्य से थोड़ा बाहर हैं - 23:59:00 नहीं 00:00:00, या 00 यानी: 00:30:00 के बजाय 2 9: 00।

>head(master21) 
         S_21 
2010-03-04 23:59:00 -0.593 
2010-03-05 00:29:00 -0.908 
2010-03-05 00:59:00 -1.034 
2010-03-05 01:29:00 -1.223 
2010-03-05 01:59:00 -1.349 
2010-03-05 02:29:00 -1.538 

मैं इन समय श्रृंखला को दूर करने के, के रूप में मिनट का अंतर अपने विश्लेषण के लिए महत्वपूर्ण नहीं है चाहता हूँ और मैं अंत में फ़ाइलों को मर्ज करना चाहते हैं, इसलिए प्रत्येक timeseries एक ही समय की जरूरत है।

मैं एक आदेश है कि बस कह सकते हैं "1 मिनट से आगे समय श्रृंखला बदलाव है, लेकिन डेटा स्तंभ (जैसे S_21) को बदल नहीं करना चाहती। मैं gsub() आसान परिवर्तन पर साथ कुछ भाग्य पड़ा है, और एक विचार जटिल रीजिक्स को ज़ूओ या एक्सटीएस में परिवर्तित करने से पहले डेटा को बदलने के लिए। मैंने lag() और diff() पढ़ा है लेकिन वे समय श्रृंखला के सापेक्ष डेटा मानों को स्थानांतरित करने लगते हैं; अगर मैं गलत हूं तो कृपया मुझे सही करें।

कोई मदद इस मुद्दे को हल करने की बहुत सराहना की जाएगी।

उत्तर

10

आज़माएं
index(master21) <- index(master21) + 60 # adds a minute 

जो समय सूचकांक में एक मिनट जोड़ देगा। फिर आप टाइमस्टैम्प संरेखित के रूप में merge() का उपयोग कर सकते हैं।

अधिक आम तौर पर, zoo पैकेज के विगेट्स आपके लिए भी उपयोगी होंगे।

संबंधित मुद्दे