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

筛选绘图最高值:仅展示女性占比超10%的职业柱状图

Stata绘图:筛选女性占比超10%的职业

现有Stata代码如下:

graph hbar (percent) if Sector=="Professional and Personal Services", over(sex) over(Occupation, sort(1) descending)

需求是仅筛选出女性占比超过10%的职业进行绘图,且只呈现最相关变量。示例输入数据如下:

input str20 Sector str10 Sex str20 Occupation
"Trade and Transportation" "Male" "Driver"
"Trade and Transportation" "Female" "Driver"
"Trade and Transportation" "Female" "Driver"
"Trade and Transportation" "Female" "Driver"
"Trade and Transportation" "Male" "Manager"
"Trade and Transportation" "Female" "Manager"
"Trade and Transportation" "Male" "Clerk"
"Trade and Transportation" "Female" "Clerk"
"Manufacturing" "Male" "Worker"
"Manufacturing" "Female" "Worker"
"Manufacturing" "Female" "Worker"
end

解决方案步骤

1. 计算各职业的女性占比

先按职业分组,计算女性人数占该职业总人数的比例,生成标记变量:

* 按职业分组计算女性占比
bysort Occupation: gen female_pct = sum(Sex == "Female") / _N * 100
* 保留每组的最终占比结果(消除重复值)
bysort Occupation: replace female_pct = female_pct[_N]

2. 筛选符合条件的职业绘图

用生成的female_pct变量筛选女性占比>10%的样本,再执行绘图命令:

graph hbar (percent) if Sector=="Professional and Personal Services" & female_pct > 10, ///
    over(sex) over(Occupation, sort(1) descending) ///
    title("女性占比超10%的职业性别分布") ///
    note("仅展示Professional and Personal Services行业")

补充:更严谨的汇总方式

如果需要避免分组计算时的重复值问题,可以先汇总数据再合并回原数据集:

* 汇总各职业女性占比
preserve
collapse (mean) female_pct = (Sex == "Female"), by(Occupation)
replace female_pct = female_pct * 100
tempfile pct_data
save `pct_data'
restore
* 合并回原数据
merge m:1 Occupation using `pct_data'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:45:59