Определить переменную, если данные панели принимают значение один раз
У меня есть набор данных панели, идентифицируемый переменной id и одной конкретной строковой переменной с разными значениями для каждого периода времени (еженедельно). Не каждый идентификатор представлен на каждой неделе (новые могут приходить, а старые могут исчезать).
Я создал пустышку, когда эта переменная содержит определенный термин, но он фиксирует только одно появление за неделю. То, что я хотел бы иметь, - то, что у каждого идентификатора есть определенный фиктивный элемент, который указывает, содержится ли термин в строковой переменной по крайней мере за одну неделю. Так что в случае, если на неделе 34 id x содержит термин, я хотел бы также иметь пустышку для всех остальных недель, которая показывает "1", так как термин когда-то содержался для id x
Я пробовал форматировать как xtset
и замена через F.
, но это не сработало, как ожидалось.
1 ответ
Я думаю, что вы хотите следующее, учитывая, что вы уже создали term
переменная установлена в 1, если строка содержит термин, и (я предполагаю) 0 в противном случае.
by id (time), sort: egen newterm = max(term)
replace term = newterm
drop newterm
by id (time), sort: ...
команда запустит egen
отдельно для каждого id
, egen
найдет максимальное значение term
для каждого id
, так newterm
будет 1, если есть term
это 1.