楼主: yulong0418
1509 5

[数据管理求助] 请各位帮忙看一个循环哪儿错了?谢谢! [推广有奖]

  • 1关注
  • 2粉丝

已卖:410份资源

博士生

44%

还不是VIP/贵宾

-

威望
0
论坛币
11279 个
通用积分
9.8538
学术水平
4 点
热心指数
6 点
信用等级
5 点
经验
2007 点
帖子
115
精华
0
在线时间
385 小时
注册时间
2012-4-18
最后登录
2025-12-11

楼主
yulong0418 发表于 2013-4-30 21:33:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想统计每一个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

二维码

扫码加我 拉你入群

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

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

关键词:请各位帮忙 forvalues forvalue values Count 谢谢

QQ截图20130430212044.png (3.97 KB)

QQ截图20130430212044.png

匿名网友
沙发
匿名网友  发表于 2013-4-30 22:23:06
bysort code: egen new1=count(pos) if pos==2
bysort code: egen new2=max(new1)

藤椅
yulong0418 发表于 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'

}

报纸
sungmoo 发表于 2013-5-1 17:09:08
bys code: egen s=sum(pos==2)

地板
yangyu1107 发表于 2013-5-5 10:00:09
程序后面应增加 i++ 这才能循环吧

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-12 06:56