2012-04-05 12 views
5

Ci scusiamo per la semplice domanda, ma non riesco a trovare aiuto per questo tipo di appuntamento.Data nel modulo: 20120405

5 aprile 2012 viene salvato come numerico come "20.120.405"

Come posso convertire un vettore di tali valori in date utilizzabili?

risposta

5

Hai solo bisogno la funzione as.Date:

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

sguardo al file di aiuto: ?as.Date, ma essenzialmente

  • %Y significa l'anno sotto forma 2012, utilizzare %y per 12.
  • %m è il mese.
  • %d il giorno.

Se la data aveva separatori, ad esempio 2012-04-05, quindi utilizzare qualcosa come: %Y-%m-%d. In alternativa, è possibile utilizzare:

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

In particolare, è possibile passare vettori di date per queste funzioni, in modo da:

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

Grazie! E grazie a tutti! – user1314736

5

come questo,

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

e forse si vuole format per ottenere il mese stampato

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

Si potrebbe dare un'occhiata a this page

3

Con strptime è possibile convertirlo in POSIXlt di classe e con as.Date è possibile convertirlo a una classe Date usando il 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" 

Edit:

Non è chiaro se hai il carattere "20120405" o numerico 20120405. In quest'ultimo caso è necessario convertire a carattere prima con as.character(20120405)

+0

Grazie! Era il numerico che penso stia causando i problemi. – user1314736

2

È anche possibile utilizzare il pacchetto lubridate:

library(lubridate) 
ymd("20120405") 
Problemi correlati