#if-statement #conditional-statements #stata
Вопрос:
Я пытаюсь создать новую переменную в условиях других переменных. У меня есть страны в Африке, где каждая страна разделена на избирательные округа; для каждой у меня есть количество голосов за кандидата.
Я пытаюсь работать на одну страну за раз ( country=ctr
) и создавать ценность в каждом избирательном округе ( cst
)
Я хотел бы создать переменную win1 = 2
, когда голоса принимают наибольшее значение в данном избирательном округе и в данной стране.
Я пытался :
by cst : replace win1=2 if cv1=max(cv1) in (ctr==566)
Ответ №1:
by ctr cst (cv1) : replace win1=2 if cv1==cv1[_N]
Ошибки:
in
предназначен для номеров наблюдений. Это не альтернатива if
.
Вам нужно ==
проверить равенство, а не =
.
max()
поскольку функция Stata требует двух или более аргументов и работает по строкам, а не между группами наблюдений.
Этот код не предполагает пропущенных значений.
Это также проще, чем вы думаете, поскольку вы можете работать сразу с несколькими странами.