Раз в два месяца (или раз в два месяца) мне не кажется особенно прозрачным термин.Я рекомендую два раза в месяц и два месяца для двух интерпретаций.
Основная проблема здесь, кажется, заключается в желании работать с агрегацией ежемесячных данных в двухмесячные данные, особенно интервалы январь-февраль, ..., ноябрь-декабрь.С этой целью я предлагаю представлять двухмесячные периоды к первому месяцу каждого.
clear
input year month whatever
2000 1 40
2000 2 10
2000 3 50
2000 4 10
end
gen mdate = ym(year, month)
gen m2date = 2 * floor(mdate/2)
format m*date %tm
list
+-------------------------------------------+
| year month whatever mdate m2date |
|-------------------------------------------|
1. | 2000 1 40 2000m1 2000m1 |
2. | 2000 2 10 2000m2 2000m1 |
3. | 2000 3 50 2000m3 2000m3 |
4. | 2000 4 10 2000m4 2000m3 |
+-------------------------------------------+
Теперь такие данные не могут быть tsset
или xtset
с использованием новой двухмесячной даты, поскольку каждая такая дата не встречается уникально в наборе данных.
Но предположим, что вы уменьшаете свой набор данных так, что каждая двухмесячная дата встречается только один раз (или, максимально, один раз на панель).Теперь tsset
или xtset
находятся в пределах досягаемости, а необходимый поворот - просто установить delta(2)
.
collapse whatever, by(year m2date)
tsset m2date, delta(2)
list
+--------------------------+
| year m2date whatever |
|--------------------------|
1. | 2000 2000m1 25 |
2. | 2000 2000m3 30 |
+--------------------------+
Представление каждого двухмесячного периода вторым месяцем каждого является одинаково систематическим.Просто добавьте 1 к рецепту для m2date
выше.
Примечание. Строго говоря, xtset
требует только идентификатора панели и не настаивает на том, чтобы время происходило не более одного раза для каждой панели.Я не уверен, что это широко полезно, но это другая история.