在STATA中,若要画出多个变量按照不同分类(如性别)的平均值对比条形图,您可以使用`graph bar`命令,并结合`over()`和`asring()`选项来实现。但是,如果直接将所有变量写入`graph bar`命令内,它们会被作为单独的数据系列显示,而不是成对的比较。为了得到您所描述的效果(即6对柱状图分别表示每个性别的均值),您可以采用以下步骤:
1. 首先计算每个变量按照性别分组后的平均值。
2. 使用这些新生成的变量来绘制条形图。
示例如下:
```stata
* 假设您的性别变量命名为 `gender`,并且有两个取值:0和1
foreach var in utiwoop sumwoop AQoL8DUtility sumcasp12 avepwi pwi_whole {
quietly by gender, sort: egen double `var'_mean = mean(`var')
}
* 现在您有了以 `_mean` 结尾的新变量,表示每个性别下各个原变量的平均值
graph bar utiwoop_mean sumwoop_mean AQoL8DUtility_mean \\
sumcasp12_mean avepwi_mean pwi_whole_mean, \\
over(gender) asring(1) percent(0) uascheme(s1color)
```
上面的代码将为每个变量生成平均值,然后使用`graph bar`命令绘制组间差异条形图。但是,这个命令会直接把所有平均值画成一个长串,而不是你所期望的6对柱状图。
为了得到更清晰的展示(即每个性别下的均值成对显示),您可能需要为每个变量单独进行绘图,然后使用`graph combine`命令将它们合并。例如:
```stata
* 逐一绘制变量的性别对比条形图,保存到独立文件中
foreach var in utiwoop sumwoop AQoL8DUtility sumcasp12 avepwi pwi_whole {
quietly by gender, sort: egen double `var'_mean = mean(`var')
graph bar `var'_mean if gender==0 ///
, over(gender) name(`var'_male, replace)
graph bar `var'_mean if gender==1 ///
, over(gender) name(`var'_female, replace)
* 使用graph combine合并两个图
quietly graph combine `var'_male.gph `var'_female.gph \\
, ycommon layout(1 2) name(`var', replace)
}
* 最后将所有变量的图合成一张大图(可选)
graph combine utiwoop.gph sumwoop.gph AQoL8DUtility.gph \\
sumcasp12.gph avepwi.gph pwi_whole.gph, layout(3 2)
```
请注意,`layout()`选项用于控制合并后的图的布局方式。在这个例子中,我假设每个变量图都被单独保存,然后使用`graph combine`命令将这些图形按照一个较大的布局(这里是以3行2列的形式)进行合并。
这种处理方法稍微繁琐一些,但可以精确地控制图表中的内容和展示形式,以满足您提出的"6对柱状图的组间差异条形图"的要求。
此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用