/ / R का उपयोग करते हुए, वर्ष को खोए बिना एक फैक्टर को डेट में कैसे बदलें? - आर, as.date

आर का उपयोग, वर्ष को खोए बिना एक फैक्टर को एक तारीख में कैसे परिवर्तित करें? - आर, as.date

जब मैं R का उपयोग करके डेटा फ़ाइल में पढ़ता हूं, तो एक दिनांक चर एक कारक है।

उदाहरण के लिए, डेटा सेट को एपिक होल्ड करने दें। फिर यदि हम पहली तारीख की संरचना को देखते हैं, तो हम प्राप्त करते हैं

str (EPC $ तिथि [1]) फैक्टर w / 1 स्तर "16/12/2006": 1

यदि आप इसे एक पात्र में बदलना चाहते हैं, as.character (epc $ Date [1]), तो आपको "समान रूप से समान चीज़ मिलेगी:" 16/12/2006 "

इससे कोई फर्क नहीं पड़ता कि मैंने क्या किया है, मैं इस प्रकार की वस्तु को वैध तिथि में परिवर्तित नहीं कर सकता।

यदि तारीख "16/12/2006" है (जो कि मैं मान रहा हूं 16 दिसंबर, 2006), तो as.Date (epc_full $ Date [1]) "0016-12-20" - पूर्ण वर्ष खो गया।

मैंने कई अलग-अलग चीजों की कोशिश की, उदा।, पहले दिनांक को किसी वर्ण में परिवर्तित करना, as.Date (), आदि के विभिन्न संस्करणों की कोशिश करना, लेकिन जब इनपुट "16/12/2006" होता है, तो मुझे ठीक वैसा ही परिणाम मिलता रहता है

यहाँ क्या चाल है?

उत्तर:

जवाब के लिए 0 № 1

तो पहले, किसी कारण से यह एक स्तर के साथ एक कारक के रूप में पढ़ा जा रहा है जिसे "16/12/2006" लेबल किया गया है। आप इसे एक चरित्र में परिवर्तित कर रहे हैं, इसलिए मैं वहाँ शुरू करूँगा।

इसे करने के कई तरीके हैं, लेकिन मुझे लगता है कि सबसे आसान है कि लैब्रिडेट पैकेज का उपयोग करें।

#Install package
install.packages("lubridate")
library(lubridate)

yourTextDate <- "16/12/2006"

yourDate <- dmy(yourTextDate)

yourDate

जवाब के लिए 0 № 2

यदि आप सख्ती से ए Date कक्षा, तब:

as.Date(s, format="%d/%m/%Y")
## [1] "2006-12-16"
class(.Last.value)
## [1] "Date"

इसलिए आप तारीखों के संपूर्ण कॉलम को निम्न में बदल सकते हैं:

as.Date(epc$Date, format="%d/%m/%Y")

यह काम करना चाहिए चाहे वह चरित्र हो या कारक।

lubridate के रूप में अच्छी तरह से काम करता है, लेकिन अगर आप "आधार के साथ चिपके हुए हैं आर, यह भी अच्छा काम करता है।