Невозможно правильно сгенерировать последовательность дат по кварталам в R

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

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

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


person JP_smasher    schedule 31.08.2015    source источник
comment
Каков ваш желаемый результат операции, описанной выше?   -  person David Arenburg    schedule 31.08.2015
comment
@DavidArenburg [1] 2015-07-31 2015-04-31 2015-01-31 2014-10-31   -  person JP_smasher    schedule 31.08.2015


Ответы (1)


Быстрое решение - взять первый день следующего месяца и вычесть один:

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"
person scoa    schedule 31.08.2015