2013-01-09 9 views
5

Ho una tabella, una delle colonne è data in forma a 20130109 o YearMonthDay senza spaziatura.Converti numeri in date

Sto provando a disegnare questi punti e, a causa di questa spaziatura, finiscono con grosse lacune nel grafico, e quindi voglio convertire questi numeri in date.

Ho cercato di utilizzare as.Date(as.character(20130107), "%y%m%d") ma restituisce sempre un NA.

+0

Ecco un buon riferimento di avviamento per la formattazione della data: http://www.statmethods.net/input/dates.html –

risposta

17

È necessario %Y (anno a 4 cifre) non %y (anno 2 cifre):

> as.Date(as.character(20130107), "%Y%m%d") 
[1] "07-01-2013" 
1

Utilizzando lubridate

library(lubridate) 

parse_date_time(as.character(20130107), "%Y%m%d") 

Se si voleva estrarre solo alcuni elementi della data, questo è facile con strftime. Ad esempio, solo l'anno:

strftime(parse_date_time(as.character(20130107), "%Y%m%d"), "%Y")