I was prompted to try it myself:

On Tue, Jan 31, 2012 at 2:56 PM, Dirk Eddelbuettel <e...@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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to