分维度计算平均就业值的方法及Stata命令咨询
分维度计算平均就业值的方法及Stata命令咨询
Hey Zeinab, 我来帮你搞定这个Stata计算均值的问题!从你的描述来看,你需要按国家、年份、年龄组这三个维度,分别计算男性和女性的平均就业值,但你之前写的命令没覆盖全所有分组维度,而且变量处理方式也不对,所以才没得到想要的结果。
下面分两种常见的数据格式给你对应命令:
一、如果你的数据是宽格式(每行对应一个国家-年份-年龄组,列分别存女性、男性就业值)
比如数据结构大概是这样:
| country | year | Age_group | Female_emp | Male_emp |
|---|---|---|---|---|
| 中国 | 2020 | 15+ | 65.2 | 72.5 |
| 中国 | 2020 | 15-24 | 42.1 | 45.3 |
这种情况下,你需要分别为男性和女性生成平均就业值变量:
- 计算女性的平均就业值:
egen female_avg_emp = mean(Female_emp), by(country year Age_group) - 计算男性的平均就业值:
egen male_avg_emp = mean(Male_emp), by(country year Age_group)
二、如果你的数据是长格式(每行对应一个国家-年份-年龄组-性别组合,有单独的就业值变量)
比如数据结构是:
| country | year | Age_group | gender | employment |
|---|---|---|---|---|
| 中国 | 2020 | 15+ | female | 65.2 |
| 中国 | 2020 | 15+ | male | 72.5 |
这种格式下命令更简洁,直接按所有维度分组计算即可:
egen avg_employment = mean(employment), by(country year Age_group gender)
小贴士:如果
gender是字符串变量(比如"female"/"male"),Stata也能直接识别,但如果后续要做其他分析,也可以先用encode gender, gen(gender_code)转成数值型分类变量。
额外小技巧
如果你只是想快速查看各分组的均值,不想生成新变量,可以用tabstat命令直接输出结果:
tabstat employment, by(country year Age_group gender) stat(mean) columns(statistics)
记得把命令里的变量名(比如Female_emp、country、Age_group)改成你数据里实际的变量名称哦!
备注:内容来源于stack exchange,提问作者Zeinab




