2012-04-05 6 views
5

Disculpas por la simple pregunta, pero no puedo encontrar ayuda para este tipo de cita.Fecha en el formulario: 20120405

5 ª de abril de 2012 es de guardar como numérico como "20120405"

¿Cómo puedo convertir un vector de tales valores en fechas utilizables?

Respuesta

5

Sólo se necesita la función as.Date:

R> x = "20120405" 
R> as.Date(x, "%Y%m%d") 
[1] "2012-04-05" 

Mire el archivo de ayuda: ?as.Date, pero esencialmente

  • %Y significa el año en forma de 2012, el uso de %y12.
  • %m es el mes.
  • %d el día.

Si su fecha tiene separadores, digamos, 2012-04-05, utilice algo como: %Y-%m-%d. Como alternativa, puede utilizar:

R> strptime(x, "%Y%m%d") 
[1] "2012-04-05" 

En particular, se puede pasar vectores de fechas para estas funciones, por lo que:

R> y = c("20120405", "20121212") 
R> as.Date(y, "%Y%m%d") 
[1] "2012-04-05" "2012-12-12" 
+0

Gracias! Y gracias a todos! – user1314736

5

como este,

(foo <- as.Date("20120405", "%Y%m%d")) 
# "2012-04-05" 

y tal vez desee format para obtener el mes impreso

format(foo, "%Y %b %d") 
# "2012 Apr 05" 

Se puede echar un vistazo a this page

3

Con strptime se puede convertir a POSIXlt clase y con as.Date se puede convertir a una clase Date utilizando el formato "%Y%m%d":

strptime("20120405",format="%Y%m%d") 
[1] "2012-04-05" 

as.Date("20120405",format="%Y%m%d") 
[1] "2012-04-05" 

Editar:

No está muy claro si tiene el carácter "20120405" o el número 20120405. En este último caso se tiene que convertir al personaje en primer lugar con as.character(20120405)

+0

¡Gracias! Fue el numérico que creo que estaba causando los problemas. – user1314736

2

También es posible usar el paquete de lubridate:

library(lubridate) 
ymd("20120405") 
Cuestiones relacionadas