如何在Stata中按年份计算性别占总统总数的百分比?
Stata直接生成年度总统性别占比变量的方法
原始数据集
| YEAR | Gender | Presidents |
|---|---|---|
| 2023 | Male | 5 |
| 2023 | Female | 6 |
| 2023 | Total | 11 |
| 2022 | Male | 3 |
| 2022 | Female | 2 |
| 2022 | Total | 5 |
目标数据集
| YEAR | Gender | Presidents | Perc_pres |
|---|---|---|---|
| 2023 | Male | 5 | 0.45 |
| 2023 | Female | 6 | 0.55 |
| 2023 | Total | 11 | 1 |
| 2022 | Male | 3 | 0.6 |
| 2022 | Female | 2 | 0.4 |
| 2022 | Total | 5 | 1 |
解决方案(无需中间变量)
可以通过分组命令结合条件判断,直接一步生成目标变量,不需要额外中间列:
bysort YEAR: gen Perc_pres = cond(Gender == "Total", 1, Presidents / total(Presidents))
命令说明
bysort YEAR:按年份分组,确保所有计算基于当年的数据集范围total(Presidents):在每个年份组内计算总统总人数(即该组Presidents的总和,对应Total行的数值)cond(...):实现分支逻辑——如果是Total行直接赋值1,否则用当前行的总统数除以当年总数得到占比
内容的提问来源于stack exchange,提问作者Shubhi
相关产品推荐
相关产品推荐

