如何在Stata中生成含女性占比与总样本量的城市-行业交叉表?
在Stata中实现需求的方法
当然可以实现,以下是两种实用的操作方法:
方法一:使用table命令(Stata 16+推荐)
table命令支持直接生成交叉表并自定义单元格内容,代码示例如下:
* 先确保分类变量带有可读标签(如果未添加标签,可执行以下代码) label define mun_label 1 "阿姆斯特丹" 2 "柏林" 3 "伦敦" 4 "巴塞罗那" 5 "哥本哈根" 6 "奥斯陆" 7 "斯德哥尔摩" 8 "罗马" 9 "维也纳" 10 "里斯本" label values municipality mun_label label define ind_label 1 "制造业" 2 "政府部门" 3 "服务业" 4 "交通运输业" 5 "教育业" label values industry ind_label * 生成目标交叉表 table municipality industry, /// stat(mean female) stat(count female) /// format(%4.2f %9.0g) /// cellformat(%4.2f %9.0g) /// title("城市-行业女性占比与样本量") /// note("每个单元格:上行为女性占比,下行为总样本量")
stat(mean female):计算每个城市-行业组合的女性占比(因female是0/1虚拟变量,均值即为占比)stat(count female):计算每个组合的总样本量format与cellformat:控制数值显示格式,%4.2f保留两位小数显示占比,%9.0g以整数形式显示样本量
方法二:先汇总再重塑(兼容全版本Stata)
若你的Stata版本低于16,可通过先汇总数据、再转宽表的方式实现:
* 第一步:按城市和行业分组,计算女性占比与样本量 collapse (mean) female_pct=female (count) sample_size=female, by(municipality industry) * 第二步:将长表转为宽表(行=城市,列=行业) reshape wide female_pct sample_size, i(municipality) j(industry) * 第三步:重命名变量并添加标签,提升表格可读性 rename female_pct* *_女性占比 rename sample_size* *_样本量 label variable 1_女性占比 "制造业-女性占比" label variable 1_样本量 "制造业-样本量" label variable 2_女性占比 "政府部门-女性占比" label variable 2_样本量 "政府部门-样本量" label variable 3_女性占比 "服务业-女性占比" label variable 3_样本量 "服务业-样本量" label variable 4_女性占比 "交通运输业-女性占比" label variable 4_样本量 "交通运输业-样本量" label variable 5_女性占比 "教育业-女性占比" label variable 5_样本量 "教育业-样本量" * 输出表格(若需更美观格式,可安装estout包后用esttab输出) list, clean noobs title("城市-行业女性占比与样本量")
如果需要更规范的格式化表格,可安装estout包后使用esttab输出:
ssc install estout esttab, title("城市-行业女性占比与样本量") cells("1_女性占比(fmt(2)) 1_样本量(fmt(0)) 2_女性占比(fmt(2)) 2_样本量(fmt(0)) 3_女性占比(fmt(2)) 3_样本量(fmt(0)) 4_女性占比(fmt(2)) 4_样本量(fmt(0)) 5_女性占比(fmt(2)) 5_样本量(fmt(0))") /// varlabels(`: var label _all') /// noobs
内容的提问来源于stack exchange,提问作者Victor Nielsen
相关产品推荐
相关产品推荐

