[R] strptime

Dirk Eddelbuettel edd at debian.org
Thu May 6 04:11:14 CEST 2004


On Thu, May 06, 2004 at 02:00:25PM +1200, David Scott wrote:
> 
> Delving into the murky world of dates and times I found this:
> 
> dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
> > times <- c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26")
> > x <- paste(dates, times)
> > z <- strptime(x, "%m/%d/%y %H:%M:%S")
> > z
> [1] "1992-02-27 23:03:20" "1992-02-27 22:29:56" "1992-01-14 01:03:30"
> [4] "1992-02-28 18:21:03" "1992-02-01 16:56:26"
> 
> which I understand. But then 
> 
> > length(dates)
> [1] 5
> > length(times)
> [1] 5
> > length(z)
> [1] 9
> > 
> 
> which I don't.
> 
> It seems that length of a POSIXlt vector (which z is), always returns 9. 

Yup, as documented. It takes a little getting used to, but if you read
help(DateTimeClasses), preferably a few times and with coffee or tea at your
side, it all becomes clear.  What you wanted was possibly a cast to POSIXct:

> length(z)
[1] 9
> length(as.POSIXct(z))
[1] 5

Hth, Dirk

-- 
The relationship between the computed price and reality is as yet unknown.  
                                             -- From the pac(8) manual page




More information about the R-help mailing list