2010-11-05 10 views
38

Ich versuche eine Funktion zu finden, um eine ganze Zahl in eine Zeichenfolge zu transformieren, damit ich es in ein Date-Objekt initiieren kann.Integer to String Umwandlung in R

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

Fehler in charToDate (x): Zeichenkette nicht in ein Standard- eindeutigen Format

ich eine Lösung mit paste() gefunden, aber ich würde gerne wissen, was der richtige Weg ist, um die Umwandlung zu machen.

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

Antwort

42

as.character() würde die allgemeine Art und Weise statt paste() Wirkung für die Seite benutzt

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

(ich nehme an, dies ist ein einfaches Beispiel und so etwas wie diese:

v <- "20081101"

ist nicht möglich?)

+1

@DavidArenburg Ich glaube, ich habe einen Tippfehler, wie ich nie haben, nicht nur einmal, verwendet 'as.Date' die Art, wie ich oben zeigen. –

14

Eine weitere Möglichkeit, um das gleiche Ergebnis zu erhalten:

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

interessant. Ich habe nicht bemerkt, dass 'strptime' numerische Werte automatisch erzwingt ... –