我想从给定日期(2015年7月31日)开始按季度生成一系列日期。而不是4月的最后一天,我得到了5月的第一天,如下所示:
> seq(as.Date('2015-07-31'), as.Date('2014-09-30'), by = '-3 month')
[1] "2015-07-31" "2015-05-01" "2015-01-31" "2014-10-31"
我也尝试在-quarter
选项中传递by
,但我收到以下错误:
> seq(as.Date('2015-07-31'), as.Date('2014-09-30'), by = '-quarter')
Error in seq.Date(as.Date("2015-07-31"), as.Date("2014-09-30"), by = "-quarter") :
invalid string for 'by'
虽然如果日期已被过度调整到错误的月份,我可以查看当月的日期并相应更正,但我想知道是否存在一段简洁的代码片段来执行上述操作?
答案 0 :(得分:3)
快速修复将采取下个月的第一天并减去一个:
seq(as.Date('2015-08-01'), as.Date('2014-10-01'), by = '-3 month') -1
[1] "2015-07-31" "2015-04-30" "2015-01-31" "2014-10-31"