[Rd] seq.Date bug?

Dirk Eddelbuettel edd at debian.org
Tue Jan 31 21:37:24 CET 2012


On 31 January 2012 at 15:17, Duncan Murdoch wrote:
| On 12-01-31 2:56 PM, Dirk Eddelbuettel wrote:
| >
| > R>  seq(as.Date(Sys.Date()), by="-1 months", length=6)
| > [1] "2012-01-31" "2011-12-31" "2011-12-01" "2011-10-31" "2011-10-01" "2011-08-31"
| > R>
| >
| > Notice how October appears twice.
| 
| >
| > Now, date arithmetic is gruesome but the documentation for seq.Date et al
| > does not hint it wouldn't honour the by= argument.  So a bug, or merely a
| > somewhat less than desirable features.
| 
| It is giving you Jan 31, Dec 31, Nov 31, Oct 31, Sep 31, Aug 31 -- 
| except some of those months don't have 31 days, so it is converting 
| those dates to ones that really exist.  (This is documented in ?seq.POSIXt.)
| 
| Isn't this what you asked for?

No as I was feeding this into format(..., "%b-%y") to create 'pretty' names,
and the double entries screw that.

Morale:  pick a mid-month date, and shift that.

Dirk
 
| Duncan Murdoch
| 
| 
| >
| > (And yes, I think I know that Hadley's lubridate has code for this too, but
| > so may my RcppBDT which is sitting on top of Boost::DateTime code ...)
| >
| > Dirk
| >
| 

-- 
"Outside of a dog, a book is a man's best friend. Inside of a dog, it is too
dark to read." -- Groucho Marx



More information about the R-devel mailing list