全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2768 3
2017-03-06


stata求助~我构建了区域变量hhid,每一个市的人都拥有相同的hhid,我通过bysort hhid: egen mean_x=mean(x)命令可以得到每一个市的x的均值并把它赋给每个人,但是我如何对这个语句进行修改,可以让我将每一个市中50岁以上人的x的均值赋给该市的所有人呢?
二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-7 06:48:32
这个回答过了!
二维码

扫码加我 拉你入群

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

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

2019-12-1 09:57:29
楼主可以分享下是如何做的吗?谢谢
二维码

扫码加我 拉你入群

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

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

2024-8-31 15:35:14
为了达到你的需求,你可以先创建一个新的变量来指示样本是否满足年龄条件(即大于等于50岁),然后在计算平均数时使用`if`语句。以下是如何操作:

```stata
// 创建一个新变量 age_flag 来指示每个人是否大于等于 50 岁
gen age_flag = (age >= 50)

// 使用 bysort hhid: egen mean_x=mean(x) 如果 age_flag 等于1(即样本满足年龄条件)
bysort hhid: egen mean_x = mean(x if age_flag == 1)
```

这将会计算每个`hhid`内,50岁以上的人的`x`值均值,并将这个平均数赋给该组内的每个人。但是要注意,如果某一个`hhid`下没有大于等于50岁的人,则`mean_x`将被设定为缺失值。

为了处理这种情况(即当某个城市中没有人满足年龄条件时,你可能需要设置一个默认值),你可以使用 `egen, missing()` 和 `if` 语句一起:

```stata
bysort hhid: egen mean_x = mean(x if age_flag == 1), missing

// 如果mean_x是缺失的(即没有人满足年龄条件)则赋以某个缺省值,比如0或者使用总样本均值等
replace mean_x = 缺省值 if mean_x == .
```

这样,即使在没有符合条件数据的情况下,你也可以避免缺失值带来的后续问题。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群