我在 Stata 中有这样的数据 -
状态 | 年份 | 收入 | 排名 |
---|---|---|---|
A | 2019 | 30 | 1 |
A | 2019 | 30 | 1 |
A | 2019 | 40 | 2 |
A | 2020 | 45 | 1 |
A | 2020 | 50 | 2 |
B | 2019 | 35 | 1 |
B | 2019 | 45 | 2 |
B | 2020 | 22 | 1 |
B | 2020 | 40 | 2 |
上面的排名栏是我想要实现的。请注意,州、年份和收入中可能存在重复的行,例如第一行和第二行。我希望这两行具有相同的排名。我基本上想要在每个州和年份内排名。我尝试了
group()
,但没有给出想要的结果。
使用
egen
和 by()
选项在 Stata 中进行分组排名。如果您想处理平局,egen
和 rank()
功能将为平局分配相同的排名。
这是满足您要求的代码片段:
egen Rank = rank(Revenue), by(State Year)
这将创建一个新变量
Rank
,它将在每个 State
和 Year
组中排名。平局将获得相同的排名。