楼主: PDMA-CPIM
973 1

[作图问题求助] STATA n个变量的均值的组间差异条形图画图命令求助 [推广有奖]

  • 3关注
  • 0粉丝

已卖:1份资源

讲师

59%

还不是VIP/贵宾

-

威望
0
论坛币
5384 个
通用积分
8.2073
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1178 点
帖子
22
精华
0
在线时间
1111 小时
注册时间
2016-6-24
最后登录
2025-8-24

楼主
PDMA-CPIM 发表于 2022-10-20 07:46:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
朋友们 想问一下多个变量的均值的组间差异条形图在STATA 中要怎么实现呢?
比如我的六个变量分别为utiwoop、sumwoop、AQoL8DUtility、sumcasp12、avepwi、pwi_whole,想要呈现各个变量均值的性别比较效果,即有6对柱状图,求STATA命令。

我用 graph bar utiwoop sumwoop AQoL8DUtility sumcasp12 avepwi pwi_whole,over(gender) 命令得出的图是6个变量的均值按性别分为两组。 微信图片_20221020104515.jpg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata 组间差异 tata 条形图 Utility

沙发
赵安豆 发表于 2024-11-27 14:22:38
在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学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-8 10:44