You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中如何按State、ServiceType分组实现各州内年度数据总和排名

问题原因

你原有写法的问题出在分组层级和求和逻辑上:用bys State ServiceCategory分组时,求和和排名的范围被限制在了每个州+单类服务的最细分组下,自然无法实现「先按州+服务类型求和、再单州内跨服务类型排名」的需求。

实现步骤

1. 先计算单州内单类服务的多年度指标总和

用egen的total()函数完成分组求和,确保同一州、同一服务类型下所有年度的观测都会得到相同的总和值:

bys State ServiceType: egen total_quant = total(quant_variable)

如果你实际的服务类型变量名是ServiceCategory,直接替换代码里的ServiceType即可。

2. 单州内部按总和排名

排名时指定分组维度仅为State,就可以保证排名只在州内生效,不会跨州比较:

* 降序排名:总和越高排名越靠前,并列排名相同、后续排名跳位
egen rank_quant = rank(total_quant), by(State) field descending

如果需要调整并列规则,替换field选项即可:

  • 替换为track:并列排名相同、后续排名连续(比如两个第1名,下一名是第2)
  • 替换为unique:即使数值相同也给独立排名,按观测顺序区分优先级

如果不需要保留中间的总和变量,运行完排名代码后可以删除:

drop total_quant

内容的提问来源于stack exchange,提问作者dpratt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:36:05