2010-11-05 15 views
38

Estoy tratando de encontrar una función para transformar un entero en una cadena para poder utilizarla en la iniciación de un objeto Date.Entero a la conversión de cadenas en R

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

error en charToDate (x): cadena de caracteres no está en una formato inequívoca norma

he encontrado una solución con paste(), pero me gustaría saber cuál es la forma correcta para hacer la conversión

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

Respuesta

42

as.character() sería la forma general en lugar de utilizar paste() por su efecto secundario

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

(supongo que esto es un ejemplo sencillo y algo como esto:

v <- "20081101"

no es posible?)

+1

@DavidArenburg Creo que tiene un error tipográfico como he nunca, ni una vez, se usa 'as.Date' la forma en que muestro arriba. –

14

Otra forma de obtener el mismo resultado:

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

interesante. No me di cuenta de que 'strptime' automáticamente forzaría/manejaría valores numéricos ... –

Cuestiones relacionadas