2010-05-14 15 views
21

Desidera modificare il formato della data. Il mio frame di dati è mostrato sotto e vorrei cambiare tutti i formati di data a "%d/%m/%Y".Cambiare il formato della data in "% d /% m /% Y"

df:

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

difficilmente dipende da quello che in realtà avete nella vostra 'data.frame'. Questi campi sono 'Date',' character', 'factor'? Se vuoi cambiare la modalità di stampa di 'data.frame', potresti sovraccaricare uno dei metodi' print' ('print.Date' o' print.POSIXlt'). – Marek

+0

Ciao Marek, Queste sono le date! Bazon – Bazon

risposta

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

predefinite R azione è per il trattamento di stringhe come fattori. Naturalmente, una configurazione individuale può differire dai valori predefiniti. È buona norma modificare i valori delle variabili su character e convertirli in date. Uso spesso il pacchetto chron: è bello, semplice e ciò che conta di più, fa il lavoro. L'unico svantaggio di questo pacchetto risiede nella gestione del fuso orario.

Se non si dispone di chron installato, fare:

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 ... dovrebbe fare il trucco ...

Problemi correlati