Search code examples
rdater-faq

Convert integer to class Date


I have an integer which I want to convert to class Date. I assume I first need to convert it to a string, but how?

My attempt:

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

Error in charToDate(x) : character string is not in a standard unambiguous format

Using paste() works, but is that really the correct way to do the conversion?

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

class(date)
# [1] "Date"

Solution

  • as.character() would be the general way rather than use paste() for its side effect

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

    (I presume this is a simple example and something like this:

    v <- "20081101"

    isn't possible?)