Thanks. It seems that the source of my confusion comes from using first using str() (and then once on the wrong track, it is easier to miss the information a man page that also describes POSIXct that is itself a vector of length equal to the number of entries it contains).
With the current example: > str(xd) POSIXlt[1:9], format: "2007-03-09" "2007-05-31" "2008-11-12" "2008-11-12" ... A quick inspection of the output does indicate a something with nine elements, but the elements appear to be "2007-03-09", "2007-05-31", etc... possibly creating confusion. To make it even more confusing I have: > x[1] [1] "March 09, 2007" > str(x[1]) chr "March 09, 2007" For what it is worth, I think that the behavior of the extract operator "[" (defined as a S3 method "[.POSIXlt()") is inconsistent with the output of length() (default method for lists). L. On Sun, 2009-08-09 at 11:45 -0500, Jeff Ryan wrote: > The reason is in the ?strptime under value: > > 'strptime' turns character representations into an object of class > '"POSIXlt"'. The timezone is used to set the 'isdst' component > and to set the '"tzone"' attribute if 'tz != ""'. > > And POSIXlt is a list of length 9. > > > HTH > Jeff > > On Sun, Aug 9, 2009 at 10:35 AM, Gabor > Grothendieck<ggrothendi...@gmail.com> wrote: > > Try this to see its components: > > > >> str(unclass(xd)) > > List of 9 > > $ sec : num [1:6] 0 0 0 0 0 0 > > $ min : int [1:6] 0 0 0 0 0 0 > > $ hour : int [1:6] 0 0 0 0 0 0 > > $ mday : int [1:6] 9 31 12 12 30 30 > > $ mon : int [1:6] 2 4 10 10 6 6 > > $ year : int [1:6] 107 107 108 108 109 109 > > $ wday : int [1:6] 5 4 3 3 4 4 > > $ yday : int [1:6] 67 150 316 316 210 210 > > $ isdst: int [1:6] 0 1 0 0 1 1 > > > > and read R News 4/1 for more. > > > > On Sun, Aug 9, 2009 at 10:20 AM, laurent<lgaut...@gmail.com> wrote: > >> Dear List, > >> > >> > >> I am having an issue with strptime (see below). > >> I can reproduce it on R-2.8, R-2.9, and R-2.10-dev, I tempted to see > >> either a bug or my misunderstanding (and then I just don't currently see > >> where). > >> > >> # setup: > >> x <- c("March 09, 2007", "May 31, 2007", "November 12, 2008", "November > >> 12, 2008", "July 30, 2009", "July 30, 2009" ) > >> > >> # showing the problem > >>> length(x) > >> 6 > >>> xd <- strptime(x, format = "%B %d, %Y") > >>> length(xd) > >> 9 > >>> xd[1:9] > >> [1] "2007-03-09" "2007-05-31" "2008-11-12" "2008-11-12" "2009-07-30" > >> [6] "2009-07-30" NA NA NA > >>> length(strptime(rep(x, 2), format="%B %d, %Y")) > >> [1] 9 > >>> strptime(rep(x, 2), format="%B %d, %Y")[1:12] > >> [1] "2007-03-09" "2007-05-31" "2008-11-12" "2008-11-12" "2009-07-30" > >> [6] "2009-07-30" "2007-03-09" "2007-05-31" "2008-11-12" "2008-11-12" > >> [11] "2009-07-30" "2009-07-30 > >> > >> Any pointer would be appreciated. > >> > >> > >> > >> L. > >> > >> ______________________________________________ > >> R-devel@r-project.org mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-devel > >> > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel