2010-05-14 17 views
21

Tarih biçimini değiştirmek ister misiniz? Veri çerçevem ​​aşağıda gösteriliyor ve tüm tarih biçimlerini "%d/%m/%Y" olarak değiştirmek istiyorum.Tarih biçiminin "% d /% m /% Y" olarak değiştirilmesi

df:

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

hile yapmak gerekir senin 'data.frame'. Bu alanlar "Tarih", "karakter", "faktörü" midir? Eğer data.frame'in nasıl yazdırılacağını değiştirmek isterseniz, 'print' yönteminden birini (' print.Date' veya 'print.POSIXlt') aşırı yükleyebilirsiniz. – Marek

+0

Merhaba Marek, Bunlar Tarihler! Bazon – Bazon

cevap

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") 
29
df$ddate <- format(as.Date(df$ddate), "%d/%m/%Y") 
2

Standart R aksiyon faktörler olarak dizeleri tedavi etmektir. Tabii ki, bireysel bir kurulum varsayılanlardan farklı olabilir. Değişken değerlerini character olarak değiştirmek ve daha sonra date'a dönüştürmek iyi bir uygulamadır. Sıklıkla chron paketini kullanırım - güzel, basit ve en önemlisi, işi yapar. Bu paketin yalnızca olumsuz tarafı, saat dilimi işlemede yatıyor. Eğer chron yüklü yoksa

yapın:

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 ca ... o Pek aslında ne var bağlıdır ...

İlgili konular