Изменить ежедневные даты на кварталы - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть следующие даты:

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(date1 date2)
18877 19553
18894 19553
19003 19553
21040 19553
21040 19553
21089 19553
18772 20744
18779 20744
18961 20744
21071 20744
21407 20744
end
format %td date1
format %td date2

Я хотел бы преобразовать даты в 3-месячные кварталы и выяснить, сколько кварталов между ними.

1 Ответ

0 голосов
/ 08 февраля 2019

Сначала необходимо преобразовать даты в квартальные эквиваленты:

generate qdate1 = qofd(date1)
generate qdate2 = qofd(date2)
format %tq qdate*

Затем вычислите разницу:

generate diff = qdate1 - qdate2

Или за один шаг:

generate diff = qofd(date1) - qofd(date2)

Результаты:

list, separator(0)

     +------------------------------------------------+
     |     date1       date2   qdate1   qdate2   diff |
     |------------------------------------------------|
  1. | 07sep2011   14jul2013   2011q3   2013q3     -8 |
  2. | 24sep2011   14jul2013   2011q3   2013q3     -8 |
  3. | 11jan2012   14jul2013   2012q1   2013q3     -6 |
  4. | 09aug2017   14jul2013   2017q3   2013q3     16 |
  5. | 09aug2017   14jul2013   2017q3   2013q3     16 |
  6. | 27sep2017   14jul2013   2017q3   2013q3     16 |
  7. | 25may2011   17oct2016   2011q2   2016q4    -22 |
  8. | 01jun2011   17oct2016   2011q2   2016q4    -22 |
  9. | 30nov2011   17oct2016   2011q4   2016q4    -20 |
 10. | 09sep2017   17oct2016   2017q3   2016q4      3 |
 11. | 11aug2018   17oct2016   2018q3   2016q4      7 |
     +------------------------------------------------+

Введите help qofd() для более подробной информации об этой функции.

...