2010-05-14 38 views
21

Me gustaría cambiar el formato de fecha. Mi marco de datos se muestra a continuación y me gustaría cambiar todos los formatos de fecha al "%d/%m/%Y".Cambiar el formato de fecha a "% d /% m /% Y"

DF:

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

Apenas depende de lo que realmente tiene en su 'data.frame'. ¿Son estos campos 'Fecha',' carácter', 'factor'? Si desea cambiar la forma en que se imprime 'data.frame', podría sobrecargar uno de los métodos' print' ('print.Date' o' print.POSIXlt'). – Marek

+0

Hola Marek, ¡Estas son fechas! Bazon – Bazon

Respuesta

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

predeterminados R acción es para el tratamiento de cadenas como factores. Por supuesto, una configuración individual puede diferir de los valores predeterminados. Es una buena práctica cambiar los valores de las variables a character, y luego convertirlo a date. A menudo uso el paquete chron - es agradable, simple y lo que más importa, hace el trabajo. La única desventaja de este paquete reside en el manejo de la zona horaria.

Si usted no tiene instalado chron, hacer:

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 ... que debe hacer el truco ...

Cuestiones relacionadas