Coding в Stata:Заполнение пропущенных значений
В моем несбалансированном еженедельном наборе данных панели, которая охватывает 5 лет, я стремлюсь:
- Заполните недели, которые пропускаются. Для этого я использую команду tsfill.
- Тем не менее, я не хочу заполнять недели, если недели не хватает более 5 недель подряд. То есть, если недели не хватает в течение 5 недель или меньше, мы продолжаем и генерируем те недостающие недели с нулевыми значениями; но если недели не хватает более 5 недель, просто игнорируйте их.
Второй шаг представляет собой вызов для меня. Какие-либо предложения?
образец оригинала:
id week var1 var2 var3
1 1 0 3 0
1 3 1 0 0
1 5 1 0 0
1 20 0 4 0
образец желаемого:
id week var1 var2 var3
1 1 0 3 0
1 2 0 0 0 (new row!)
1 3 1 0 0
1 4 0 0 0 (new row!)
1 5 1 0 0
1 20 0 4 0
Насколько ginormous является вашим набором данных? Могу ли вы справиться с полным заполнением, а затем сбросить строки, которые вам не нужны? –
Почти 300 000 об. Я не думаю, что это возможно. – Olga
Один из подходов может заключаться в следующем: (1) Использовать tsfill, чтобы заполнить все, а затем (2) gen DROPME = 1 (3) итерации через id, время и установить DROPME = 0, если в пределах расстояния 5 расстояний есть не пропущенное наблюдение , (4) Бросьте каждый ряд с dropme = 1. –