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

Shin, Daehyok sdhyok at email.unc.edu
Mon Jun 7 18:29:54 CEST 2004


> > res <- as.POSIXlt(paste(years, months, days, sep="-"))

This command still convert numbers to a character vector, right?

Daehyok Shin (Peter)
Terrestrial Hydrological Ecosystem Modellers
Geography Department
University of North Carolina-Chapel Hill
sdhyok at email.unc.edu

"We can do no great things, 
only small things with great love."
                         - Mother Teresa

> -----Original Message-----
> From: Roger Bivand [mailto:Roger.Bivand at nhh.no]
> Sent: Monday, June 07, 2004 PM 12:20
> To: Daehyok Shin
> Cc: R, Help
> Subject: Re: [R] Vectors of years, months, and days to dates?
> 
> 
> On Mon, 7 Jun 2004, Daehyok Shin wrote:
> 
> > How can I create POSIXlt directly from the numbers?
> > I failed to find the solution from help documents.
> 
> ?POSIXlt
> 
> ?as.POSIXlt:
> 
> > res <- as.POSIXlt(paste(years, months, days, sep="-"))
> > str(res)
> `POSIXlt', format: chr [1:2] "1991-01-01" "1992-10-02"
> > res$year 
> [1] 91 92
> 
> > 
> > Daehyok
> > 
> > --On Monday, June 07, 2004 4:44 PM +0100 Prof Brian Ripley 
> > <ripley at stats.ox.ac.uk> wrote:
> > 
> > > 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
> > >
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
> > 
> 
> -- 
> Roger Bivand
> Economic Geography Section, Department of Economics, Norwegian School of
> Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
> Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
> e-mail: Roger.Bivand at nhh.no
> 
> 
>




More information about the R-help mailing list