全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1479 5
2013-04-30
我想统计每一个code下,pos变量等于2的个数,然后把这个数作为new2存储起来,数据结构见附件:


然后我的代码如下:
egen new=group(code)
local j=new[_N]
forvalues i=1(1)`j'{
count if pos==2 & new==`i'
gen new2=r(N) if new==`i'
}


结果只能出来第一个代码的结果,其他都是空值。。。请各位看看哪儿出错了?
或者不用循环就能实现?
111111.png

附件列表
QQ截图20130430212044.png

原图尺寸 3.97 KB

QQ截图20130430212044.png

二维码

扫码加我 拉你入群

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

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

全部回复
-->
bysort code: egen new1=count(pos) if pos==2
bysort code: egen new2=max(new1)
二维码

扫码加我 拉你入群

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

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

2013-5-1 11:30:01
匿名者 发表于 2013-4-30 22:23
bysort code: egen new1=count(pos) if pos==2
bysort code: egen new2=max(new1)
谢谢!我还是不太明白,如果非得舍简求繁,这个循环语句错在哪儿了呢?
二维码

扫码加我 拉你入群

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

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

2013-5-1 11:57:15
egen new=group(code)

gen new2=.

local j=new[_N]
forvalues i=1(1)`j'{
      count    if pos==2 & new==`i'
      replace new2=r(N) if new==`i'

}
二维码

扫码加我 拉你入群

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

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

2013-5-1 17:09:08
bys code: egen s=sum(pos==2)
二维码

扫码加我 拉你入群

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

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

2013-5-5 10:00:09
程序后面应增加 i++ 这才能循环吧
二维码

扫码加我 拉你入群

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

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

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

分享

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