[Rd] seq.Date bug?
Sarah Goslee
sarah.goslee at gmail.com
Tue Jan 31 21:07:06 CET 2012
I was prompted to try it myself:
On Tue, Jan 31, 2012 at 2:56 PM, Dirk Eddelbuettel <edd at debian.org> 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.
As does December.
> 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.
The by argument chokes on "month" if the current day is greater than the
shortest month in the sequence (presumably due to the irregular nature
of month lengths):
For leap year 2012:
> seq(as.Date("2012/1/29"), by="month", length.out=12) # works
[1] "2012-01-29" "2012-02-29" "2012-03-29" "2012-04-29" "2012-05-29"
[6] "2012-06-29" "2012-07-29" "2012-08-29" "2012-09-29" "2012-10-29"
[11] "2012-11-29" "2012-12-29"
> seq(as.Date("2012/1/30"), by="month", length.out=12) # fails
[1] "2012-01-30" "2012-03-01" "2012-03-30" "2012-04-30" "2012-05-30"
[6] "2012-06-30" "2012-07-30" "2012-08-30" "2012-09-30" "2012-10-30"
[11] "2012-11-30" "2012-12-30"
While for non-leap year 2011:
> seq(as.Date("2011/1/28"), by="month", length.out=12) # works
[1] "2011-01-28" "2011-02-28" "2011-03-28" "2011-04-28" "2011-05-28"
[6] "2011-06-28" "2011-07-28" "2011-08-28" "2011-09-28" "2011-10-28"
[11] "2011-11-28" "2011-12-28"
> seq(as.Date("2011/1/29"), by="month", length.out=12) #fails
[1] "2011-01-29" "2011-03-01" "2011-03-29" "2011-04-29" "2011-05-29"
[6] "2011-06-29" "2011-07-29" "2011-08-29" "2011-09-29" "2011-10-29"
[11] "2011-11-29" "2011-12-29"
> sessionInfo()
R version 2.14.1 (2011-12-22)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_2.14.1
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-devel
mailing list