2010-11-05 5 views
38

Sto cercando di trovare una funzione per trasformare un intero in una stringa in modo da poterlo utilizzare nell'iniziare un oggetto Date.Intero per la conversione di stringhe in R

> v = c(20081101) 
> date <- as.Date(v, format("%Y%m%d")) 

Error in charToDate (x): stringa di caratteri non è in un formato inequivocabile standard di

ho trovato una soluzione con paste(), ma vorrei sapere qual è il modo corretto per fare la conversione.

> date <- as.Date(paste(v), format("%Y%m%d")) 
> date 
[1] "2008-11-01" 

risposta

42

as.character() sarebbe il modo generale, piuttosto che utilizzare paste() per il suo effetto collaterale

> v <- 20081101 
> date <- as.Date(as.character(v), format = "%Y%m%d") 
> date 
[1] "2008-11-01" 

(Presumo che questo è un esempio semplice e qualcosa di simile:

v <- "20081101"

non è possibile?)

+1

@DavidArenburg credo di avere un errore di battitura come non ho mai, nemmeno una volta, utilizzato 'as.Date' il mio modo di vedere sopra. –

14

Un altro modo per ottenere lo stesso risultato:

date <- strptime(v,format="%Y%m%d") 
+3

interessante. Non mi rendevo conto che 'strptime' avrebbe forzato/gestito automaticamente i valori numerici ... –