楼主: shaoyanmin1982
1521 5

[一般统计问题] 求助stata循环语句提取样本均值 [推广有奖]

  • 6关注
  • 1粉丝

讲师

20%

还不是VIP/贵宾

-

威望
0
论坛币
65067 个
通用积分
0.1029
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2609 点
帖子
124
精华
0
在线时间
740 小时
注册时间
2008-1-9
最后登录
2024-5-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
样本量有几千个,统计不同年份满足if条件下的y的均值,不知道怎么写循环语句,只需要记录下y的均值和当前条件下的样本量。
目前用最笨的方法,一个个copy均值和样本量,手已残,想问是否有更方便的方法吗?
sum y if (x1==0) &(year==2015)
sum y if (x1==1) &(year==2015)
sum y if (x2==0) &(year==2015)
sum y if (x2==1) &(year==2015)

sum y if (x1==0) &(year==2016)
sum y if (x1==1) &(year==2016)
sum y if (x2==0) &(year==2016)
sum y if (x2==1) &(year==2016)

样本情况如下
year        id        y        x1        x2        x3
2015        1        2        0        1        0
2016        1        3        1        0        0
2017        1        4        0        0        1
2018        1        2        1        0        1
2015        2        7        0        0        0
2016        2        8        0        1        1
2017        2        10        0        0        1
2018        2        15        1        0        0

二维码

扫码加我 拉你入群

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

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

关键词:求助stata Stata tata 循环语句 year

回帖推荐

黃河泉 发表于4楼  查看完整内容

可能有点像 (请据以更改):

zhaozimeng 发表于3楼  查看完整内容

gen meanx10 ==. gen meanx11 ==. gen meanx20 ==. gen meanx21 ==. gen Numx10 ==. gen Numx11 ==. gen Numx20 ==. gen Numx21 ==. foreach i in 0 1{ forvalues t = 2000(1)2019{ //以2000到2019年为例 sum y if x1 == `i' & year = `t' replace meanx1`i' = r(mean) replace Numx1`i' = r(N) sum y if x2 == `i' & year = `t' replace meanx2`i' = r(mean) replace Nu ...
在寻找中不断成长
沙发
melanieu 发表于 2020-8-7 15:22:37 |只看作者 |坛友微信交流群
请问题主有解决这个嘛,我也遇到相似的问题

使用道具

藤椅
zhaozimeng 在职认证  发表于 2020-8-7 17:23:31 |只看作者 |坛友微信交流群
gen meanx10 ==.
gen meanx11 ==.
gen meanx20 ==.
gen meanx21 ==.
gen Numx10 ==.
gen Numx11 ==.
gen Numx20 ==.
gen Numx21 ==.
foreach i in 0 1{
   forvalues t = 2000(1)2019{   //以2000到2019年为例
             sum y if x1 == `i' & year = `t'
             replace meanx1`i' = r(mean)
             replace Numx1`i' = r(N)
             sum y if x2 == `i' & year = `t'
             replace meanx2`i' = r(mean)
             replace Numx2`i' = r(N)
   }
}
这样均值和样本量就存储在开始生成的六个变量中了

使用道具

板凳
黃河泉 在职认证  发表于 2020-8-8 09:59:16 |只看作者 |坛友微信交流群
可能有点像 (请据以更改):
  1. egen newid = group(id year)
  2. reshape long x, i(newid) j(t)
  3. bys year t x: egen wanted = sum(y)
  4. duplicates drop year t x, force
复制代码

使用道具

报纸
黃河泉 在职认证  发表于 2020-8-8 09:59:48 |只看作者 |坛友微信交流群
资料 (请用 dataex)
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(year id y x1 x2 x3)
  4. 2015 1  2 0 1 0
  5. 2016 1  3 1 0 0
  6. 2017 1  4 0 0 1
  7. 2018 1  2 1 0 1
  8. 2015 2  7 0 0 0
  9. 2016 2  8 0 1 1
  10. 2017 2 10 0 0 1
  11. 2018 2 15 1 0 0
  12. end
复制代码

使用道具

地板
shaoyanmin1982 发表于 2020-8-13 07:46:41 |只看作者 |坛友微信交流群
多谢黄老师

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-14 02:42