2010-05-14 8 views
21

दिनांक प्रारूप को बदलना चाहते हैं। मेरा डेटा फ्रेम नीचे दिखाया गया है और सभी दिनांक प्रारूपों को "%d/%m/%Y" में बदलना चाहता है।दिनांक प्रारूप को "% d /% m /% y" में बदलना

df:

id bdate  wdate  ddate 
1 09/09/09 12/10/09  2009-09-27 
+3

यह शायद ही आप वास्तव में है क्या पर निर्भर करता है आपके 'data.frame'। क्या ये फ़ील्ड 'दिनांक', 'वर्ण',' कारक 'हैं? यदि आप बदलना चाहते हैं कि 'data.frame' कैसे मुद्रित किया गया है तो आप' प्रिंट 'विधि ('print.Date' या' print.POSIXlt') में से एक को अधिभारित कर सकते हैं। – Marek

+0

हाय मरेक, ये तिथियां हैं! बेज़न – Bazon

उत्तर

14
df$ddate<-strftime(df$ddate,"%d/%m/%Y") 
df$bdate<-strftime(strptime(df$bdate,"%d/%m/%y"),"%d/%m/%Y") 
df$wdate<-strftime(strptime(df$wdate,"%d/%m/%y"),"%d/%m/%Y") 
2

डिफ़ॉल्ट R कार्रवाई कारक के रूप में तार के इलाज के लिए है। बेशक, एक व्यक्तिगत सेटअप डिफ़ॉल्ट से भिन्न हो सकता है। परिवर्तनीय मानों को character में बदलने के लिए यह एक अच्छा अभ्यास है, और फिर इसे date में परिवर्तित करें। मैं अक्सर chron पैकेज का उपयोग करता हूं - यह अच्छा, सरल और सबसे महत्वपूर्ण बात है, यह नौकरी करता है। इस पैकेज का केवल नकारात्मक समय समय क्षेत्र हैंडलिंग में रहता है।

आप chron स्थापित नहीं है, तो कार्य करें:

install.packages("chron") 
# load it 
library(chron) 
# make dummy data 
bdate <- c("09/09/09", "12/05/10", "23/2/09") 
wdate <- c("12/10/09", "05/01/07", "19/7/07") 
ddate <- c("2009-09-27", "2007-05-18", "2009-09-02") 
# notice the last argument, it will not allow creation of factors! 
dtf <- data.frame(id = 1:3, bdate, wdate, ddate, stringsAsFactors = FALSE) 
# since we have characters, we can do: 
foo <- transform(dtf, bdate = chron(bdate, format = "d/m/Y"), wdate = chron(wdate, format = "d/m/Y"), ddate = chron(ddate, format = "y-m-d")) 
# check the classes 
sapply(foo, class) 
# $id 
# [1] "integer" 

# $bdate 
# [1] "dates" "times" 

# $wdate 
# [1] "dates" "times" 

# $ddate 
# [1] "dates" "times" 

C'est सीए ... यह चाल करना चाहिए ...

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