如何根据国家条件为其他变量占用最高值时创建变量?

How to create a variable for when other variable takes up highest value, with conditions on countries?

我正在尝试在其他变量的条件下创建一个新变量。我有非洲国家,每个国家都分为选区;对于每个人,我都有一个候选人的票数。

我正在尝试一次为一个国家工作 (country=ctr) 并在每个选区创造价值 (cst)

我想在给定选区和给定国家/地区的票数最高时创建一个变量 win1 = 2

我试过了:

by cst : replace win1=2 if cv1=max(cv1) in (ctr==566)
by ctr cst (cv1) : replace win1=2 if cv1==cv1[_N] 

错误:

in 用于观察数字。它不是 if.

的替代品

您需要 == 来测试相等性,而不是 =

max() 作为 Stata 函数需要两个或更多参数并且按行工作,而不是跨组观察。

此代码假设没有缺失值。

它也比您想象的要容易,因为您可以同时与多个国家/地区合作。