के साथ स्ट्रैटाइम% z का उपयोग करके मैं टेराडाटा से निर्यात किए गए .csv डेटा के साथ काम कर रहा हूं। कई कॉलम मूल रूप से टाइमज़ोन के साथ टाइमस्टैम्प थे, इसलिए आर में .csv लोड करने के बाद मैं इन कॉलम (जो तारों के रूप में लोड होते हैं) को POSIXlt या POSIXct में कनवर्ट करना चाहते हैं। मैं strptime
का उपयोग कर रहा हूं, लेकिन .csv फ़ाइल से टाइमज़ोन का प्रारूप strptime
से मेल नहीं खाता है। उदाहरण के लिए, यह -0400
की अपेक्षा करता है लेकिन .csv प्रारूप -04:00
है जहां एक कोलन घंटे और मिनट को अलग करता है।विशेष टाइमज़ोन प्रारूप
मैं कोलन को हटा सकता हूं, लेकिन यह एक अतिरिक्त कदम और जटिलता है यदि मैं संभव से बचना चाहता हूं। टाइमज़ोन (%z
) के लिए एक अलग प्रारूप का उपयोग करने के लिए strptime
बताने का कोई तरीका है?
## Example data:
x <- c("2011-10-12 22:17:13.860746-04:00", "2011-10-12 22:17:13.860746+00:00")
format <- "%Y-%m-%d %H:%M:%OS%z"
## Doesn't work:
strptime(x,format)
## [1] NA NA
## Ignores the timezone:
as.POSIXct(x)
## [1] "2011-10-12 22:17:13 EDT" "2011-10-12 22:17:13 EDT"
## Remove the last colon:
x2 <- gsub("(.*):", "\\1", x)
x2
## [1] "2011-10-12 22:17:13.860746-0400" "2011-10-12 22:17:13.860746+0000"
## This works, but requires extra processing (removing the colon)
strptime(x2,format)
## [1] "2011-10-12 22:17:13" "2011-10-12 18:17:13"
तो मैं strptime(x,"%Y-%m-%d %H:%M:%OS%zz")
, जहां %zz
समयक्षेत्र कि -04:00
प्रारूप पहचानता के लिए एक कस्टम अभिव्यक्ति है की तरह कुछ का उपयोग कर यह पिछले परिणाम प्राप्त करने के लिए देख रहा हूँ:
यहाँ एक उदाहरण है। या %zH:%zM
भी बेहतर हो सकता है।
यदि यह संभव नहीं है, तो क्या किसी के पास डेटा.फ्रेम/डेटा.table के एकाधिक कॉलम के लिए तारों (विभिन्न प्रारूपों) को परिवर्तित करने के लिए एक चिकना/लचीला फ़ंक्शन है?
यह 2016 है और दुनिया अभी भी इस से निपटने के लिए चल रहा है ... – sehe