如果我提供起始日期和结束日期,以及一个频率,我应该能够生成从开始到结束的日期序列,使得:
1)日期是每月的最后一天。
2)我可以将序列的频率设置为12的任何因子(相对于12个月)。例如,如果频率为3,则表示有4个月的间隔或间隙。
对于(1),下面的函数给出了一个输出,间隔为3个月(即季度),但它不给出当月的最后一天日期。
如何将这个转换为一个序列,使我得到最后一天?给我一个简单的代码。
1)日期是每月的最后一天。
2)我可以将序列的频率设置为12的任何因子(相对于12个月)。例如,如果频率为3,则表示有4个月的间隔或间隙。
对于(1),下面的函数给出了一个输出,间隔为3个月(即季度),但它不给出当月的最后一天日期。
DateSeq<-function(st,en, freq){
seq(st, en, by = paste(as.character(12/freq), "months"))
}
DateSeq(as.Date("2015-01-01"),as.Date("2018-03-03"),4)
如何将这个转换为一个序列,使我得到最后一天?给我一个简单的代码。
DateSeq(as.Date("2015-02-01"),as.Date("2018-04-03"),4)-1
的意思是生成从 2015 年 2 月 1 日到 2018 年 4 月 3 日之间,每隔 4 天的日期序列,并将结果减去 1。 - akrunlubridate::ceiling_date(DateSeq(as.Date("2015-01-10"),as.Date("2018-03-20"),4), 'month')-1
怎么样? - akrun