1

我正在尝试创建一个图表,查看每个年龄组感染疾病的百分比,即变量中的平均卵数> 0,eggs10然后将其划分为lightly感染或heavily感染的百分比。

我对他们尿液中的平均卵子计数有变量:eggs10

我有一个我正在看的人的变量gender

我有一个强度变量:light heavy

当我输入:

gr bar (count) eggs10, stack asyvars over(intense) by(gender) percent

它给了我 100% 的男性和女性感染率!如何获得eggs10>0 作为 y 轴的百分比?

4

1 回答 1

2

的效果by()是分开对待性别。也就是说,Stata 的观点是您要求单独计算百分比。你可能需要over(gender)这里。

(更新)示例数据与原始示例有很大不同。

. input str1 child  Meanegg str1 gender str5 intensity 

child    Meanegg     gender  intensity
1. a  0  M  None 
2. b  55 F  Heavy 
3. c  47 F  Light
4. end 

. encode gender, gen(Gender)
. encode intensity, gen(Intensity)

考虑catplot,可以使用下载

. ssc inst catplot 

尝试类似的东西

. catplot Intensity Gender, asyvars percent(Gender)  stack recast(bar)

(第二次更新)重要的是要意识到做什么graph bar (count)。看看这些例子:

. sysuse auto
. graph bar (count) mpg
. graph bar (count) mpg , over(foreign)

这是第二个的图表。(count)这里计算具有非缺失值的观察数。帮助中对此进行了说明。然而,这很少是人们想要的:更常见的是,人们想要一个变量的不同类别的计数。这可以用 来完成graph bar,但用catplot(SSC) 更容易。

为示例图说明:该图告诉您,mpg国内汽车有 52 个非缺失值,外国汽车有 22 个。该图没有说明实际值是什么mpg

您可以说:但是该图向您显示了不同类别的频率foreign。是的; 但仅限于mpg对于 的每个非缺失值都有一个非缺失值foreign

在此处输入图像描述

(第三次更新)(回应 8 月 26 日的评论)研究以下内容:

. clear

. input var1 str3 var2

        var1       var2
       1. 44 "Yes"
       2. 36 "No"
       3. end

. graph bar (asis) var1, over(var2)

. graph bar (asis) var1, over(var2) percent

. graph bar (asis) var1, over(var2) percent asyvars bargap(20)
于 2013-08-21T22:10:54.570 回答