2015-08-31 5 views
3

Я хотел бы генерировать последовательность дат по кварталам назад от заданной даты (31 июля 2015 г.). Вместо того, чтобы в последний день апреля, я в первый день мая, как показано ниже:Невозможно генерировать последовательность дат по кварталам должным образом в R

> 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' 

While Я могу проверить день месяца и исправить соответственно, если даты были слишком скорректированы в неправильный месяц, мне было интересно, существует ли суровый фрагмент кода для выполнения вышеуказанного?

+0

Что вы желаемый результат от указанного выше операций? –

+0

@DavidArenburg [1] "2015-07-31" "2015-04-31" "2015-01-31" "2014-10-31" –

ответ

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"