[R] Vectors of years, months, and days to dates?

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jun 7 17:44:09 CEST 2004


On Mon, 7 Jun 2004, Shin, Daehyok wrote:

> The interface for dates in R is a little confusing to me.
> I want to create a vector of Date objects from vectors of years, months, and
> days.
> One solution I found is:
> 
> years <- c(1991, 1992)
> months <- c(1, 10)
> days <- c(1, 2)
> 
> dates <- as.Date(ISOdate(years, months, days))
> 
> But, in this solution the ISOdate function converts the vectors into
> characters,
> which can cause serious performance and memory loss
> when the vectors of years, months, and days are huge.

Really?  You have measured the loss?  A million causes no problem for 
example, and what are you going to do with a million dates that is 
instantaneous and worthwhile?  And a million dates are hardly going to be 
unique so you only need to convert the unique values.

> I am quite sure there is much better solution for it. What is it?

Write your own C code, or make a POSIXlt object directly from the numbers 
and convert that.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list