R में as.Date फ़ंक्शन वर्तमान वर्ष 2020 में मेरे द्वारा दर्ज किए गए वर्षों को क्यों परिवर्तित करता है?

Aug 16 2020

मेरे पास डेटाफ़्रेम में कुछ तिथियां हैं, और जब मैं उन्हें तारीखों में बदलने के लिए as.Date () का उपयोग करता हूं, तो वर्ष 2020 में परिवर्तित हो जाते हैं, जो वास्तव में मान्य नहीं है क्योंकि फ़ाइल में केवल 2018 तक का डेटा है।

मेरे पास अब तक क्या है:

> fechadeinsc1[2]
[1] "2020-08-15"

> class(fechadeinsc1)
[1] "Date"

> fechainsc[2]
[1] "2017/99/99"

> class(fechainsc)
[1] "character"

जैसा कि आप देख सकते हैं, fechadeinsc1 को डेट में परिवर्तित किया गया था और fechainsc मूल डेटाफ्रेम है जो तत्व वर्ण हैं। "fechadeinsc1" को उसी वर्ष देना चाहिए, क्या ऐसा नहीं करना चाहिए? हालांकि दिन और महीने मान्य नहीं हैं।

एक और उदाहरण :

> fechadenac1[2]
[1] "2020-12-31"

> class(fechadenac1)
[1] "Date"

> fechanac[2]
[1] "12/31/2016"

> class(fechanac)
[1] "character"

फिर से साल बदल जाता है।

मेरा कोड :

fechanac <- dat$fecha_nac fechainsc <- dat$fecha_insc

fechadeinsc1 <- as.Date(fechainsc,tryFormats =c("%d/%m/%y","%m/%d/%y","%y","%d%m%y","%m%d%y"))
fechadenac1 <- as.Date(fechanac,tryFormats =c("%d/%m/%y","%m/%d/%y","%y","%d%m%y","%m%d%y"))

"डेट" मूल डेटाफ़्रेम है जिसमें इक्वाडोर में 2016 और 2017 में पंजीकृत नवजात शिशुओं के बारे में जानकारी है, अगर कोई भी मूल .csv फ़ाइल चाहता है तो कृपया मुझसे संपर्क करें।

जवाब

1 tevemadar Aug 16 2020 at 01:39

के आधार पर strptime, as.Date4-अंकों वाले वर्षों के लिए आपको ऊपरी केस Y का उपयोग करना चाहिए:

%yवर्ष बिना सदी (00--99)। इनपुट पर, मान ०० से ६ input तक २० और ६ ९ से ९९ तक १ ९ से उपसर्ग हैं - यह २००४ और २००IX के पॉसिक्स मानकों द्वारा निर्दिष्ट व्यवहार है, लेकिन वे यह भी कहते हैं 'यह उम्मीद है कि भविष्य के संस्करण में डिफ़ॉल्ट सदी का अनुमान है 2-अंकीय वर्ष से बदल जाएगा '।

%Yशतक के साथ वर्ष। [...]