Ваша команда законна.
Не удаляет никаких наблюдений!
Он просто не делает то, что вы хотите. Причина в том, что ничто в вашем синтаксисе не заставляет Stata смотреть дальше каждого наблюдения отдельно. Итак,
ModelJaarrekening == 2 & ModelJaarrekening == 1
никогда не будет верным ни для одного наблюдения: переменная не может быть 1 и 2 в одном наблюдении. Такая же проблема имеет место для
year < 2017 & year == 2017
В результате у вашего индикатора будут отсутствующие значения.
То, что вы хотите, больше похоже на это. Я устанавливаю фирменный идентификатор id
.
local foo ModelJaarrekening
egen OK1 = total(`foo' == 2 & year <= 2017), by(id)
egen OK2 = total(`foo' == 1 & year == 2017), by(id)
gen wanted = OK1 & OK2
Тогда OK1
будет равно 1 или более, если и только если было какое-либо значение 2 до 2017 года. «OK2» будет равно 1, если и только если в 2017 году было значение 1 для каждой фирмы.
wanted
будет 1, если и только если оба его аргумента не равны нулю (в этом случае отрицательные значения невозможны и учитываются только положительные значения); и 0 в противном случае.
Таким образом, это индикатор (вы говорите, фиктивный) со значениями 1 и 0.
Показатели, которые равны 1 или отсутствуют, в Stata менее полезны, чем показатели, равные 1 или 0.