楼主: jg_joy16
4063 2

[数据管理求助] stata 求均数 众数 [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
1.0003
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
197 点
帖子
13
精华
0
在线时间
74 小时
注册时间
2016-3-21
最后登录
2023-3-7

楼主
jg_joy16 发表于 2020-9-7 23:45:21 |AI写论文
5论坛币
例子-均数 众数.dta (1.95 KB)


以上两个变量:age和kids。其中70岁对应的0是个错误的值,需要替换。

1)我想用70岁组除了这一例以外其他所有例kids的平均数来替换这个0.
我尝试了:
bysort (age):egen kids_均数=mean(kids)if kids!=0
replace kids=kids_均数 if kids==0
但是kids=0的那一例均数会变成缺失值。
我应该怎么做呢?


2)按年龄,用众数来替换那个0.
我尝试了:
bysort (age):egen kids_众数=mode(kids)if kids!=0
replace kids=kids_众数 if kids==0
结果kids_众数全部为缺失值。


应该怎么解决呢?



举例.png (11.35 KB)

举例.png

关键词:Stata tata replace bysort place

沙发
jg_joy16 发表于 2020-9-7 23:47:01
补充一下,我这里只是举了一个例子,实际的数据库非常大,我没有办法用
su kids if age==70 的方式逐个年龄进行计算。

藤椅
蓝色 发表于 2020-9-8 09:41:45
  1. bysort age :egen kids_均数0=mean(kids)       if kids!=0
  2. bysort age :egen kids_均数 =mean(kids_均数0)
  3. replace kids=kids_均数 if kids==0

  4. bysort age : egen kids_众数0=mode(kids)       if kids!=0
  5. bysort age : egen kids_众数 =mode(kids_众数0)
  6. replace kids=kids_众数 if kids==0
复制代码

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

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