2011-10-13 18 views
6

से समय प्राप्त करें मेरे पास xts ऑब्जेक्ट है, एक्स। मैं इंडेक्स में टाइम स्टैंप के आधार पर एक निश्चित समय तक लूप के लिए दौड़ना चाहता हूं।एक्सटीएस इंडेक्स

> index(x) 
[1] "2011-10-12 16:44:00 SAST" 

चलें कहते हैं कि मैं जब तक मेरी पाश को चलाने के लिए के रूप में सूचकांक में समय का कहना है 16:40:00 से भी कम है चाहता हूँ। उपरोक्त इंडेक्स के प्रारूप को देखते हुए, मैं समय घटक कैसे निकालूं?

उत्तर

4

यह आपको उस बॉल पार्क में ले जाना चाहिए जहां आप बनना चाहते हैं। format का उपयोग करके, आप केवल घंटों, मिनट और सेकंड भाग निकालते हैं। ?strptime के लिए सहायता पृष्ठ जानकारी के निष्कर्षण के लिए उपयोग किए गए प्रतीकों के बारे में अधिक जानकारी देता है।

#if you don't have your string in an appropriate format yet 
(x <- strptime("2011-10-12 16:44:00 SAST", format = "%Y-%m-%d %H:%M:%S")) 
    [1] "2011-10-12 16:44:00" 
class(x) 
    [1] "POSIXlt" "POSIXt" 
(new.x <- format(x, format = "%H:%M:%S")) 
    [1] "16:44:00" 
+0

धन्यवाद, एक आकर्षण काम करता है। एक सवाल हालांकि, इस समय घटक को मनमाने ढंग से तुलना करने के लिए, 16:00:00 कहें, मैं इसके बारे में कैसे जाऊं? मैंने कोशिश की है: अगर (new.x> strptime ("16:00:00", "% एच:% एम:% एस"), लेकिन ऐसा लगता है कि यह नया नहीं है, क्योंकि new.x एक ऐतिहासिक है मूल्य और नए समय की आज की तारीख –

+0

@ED मुझे लगता है कि तिथि संलग्न के साथ एक नया चर बना सकता है, या आपके वर्तमान चर के साथ तिथि भी हो सकती है। –

2

समस्या टाइमज़ोन सही हो रही है। अपने सिस्टम पर "SAST" की tz कल्पना मान्य नहीं है लेकिन शायद तुम्हारा पर यह हो जाएगा:

x[ index(x) < as.POSIXct("2011-10-12 16:44:00", tz= SAST") ] 

(। यूटीसी +2 प्रतीत होता है) और मैं वापस ले कि मैं क्या कहा अपने सिस्टम के बारे में में पहचान नहीं कर ।

as.POSIXct("2011-10-12 16:44:00", tz= "Africa/Johannesburg") 
# [1] "2011-10-12 16:44:00 SAST" 

तो का उपयोग करें:

x[ index(x) <= as.POSIXct("2011-10-12 16:44:00", tz= "Africa/Johannesburg")] 
संबंधित मुद्दे