全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
9819 15
2019-03-10

forvalues i=1/`maxnumber'{
*每只股票
display `i'
quietly egen time=group(month) if id==`i'
quietly sum time if id==`i'
quietly gen nofm=.
forvalues j=1/`r(max)'{
*每个月
scalar a=0
forvalues k=0/`r(max)-j'{
*每个月向后循环
scalar a=a+1 if id==`i'&time==`j+k'&in_r>=0
break if id==`i'&time==`j+k'&in_r<0
}
quietly replace nofm=a
drop a
}
quietly sum nofm
quietly replace Nofm=`r(max)'
quietly drop time nofm
}
keep Nofm id stkcd
duplicates drop id stkcd

运行后一直报错if not allowed,我实在不知道哪里出了问题。。。一直反复修改红色部分但也改不出来,求助各位了!
二维码

扫码加我 拉你入群

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

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

全部回复
2019-3-10 21:43:39
if有两种。写在前面的if是表示逻辑判断。写在后面的if是表示样本筛选。
你这里是逻辑判断,要写在前面。
stata可不认识倒装句。
二维码

扫码加我 拉你入群

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

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

2019-3-10 21:49:52
天南水北 发表于 2019-3-10 21:43
if有两种。写在前面的if是表示逻辑判断。写在后面的if是表示样本筛选。
你这里是逻辑判断,要写在前面。
...
非常肥肠感谢您的耐心解答!我按照if在前改了之后报错变成了variable a not found,想请教一下这又是为什么呢?
二维码

扫码加我 拉你入群

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

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

2019-3-11 11:09:34
MissFlorence 发表于 2019-3-10 21:49
非常肥肠感谢您的耐心解答!我按照if在前改了之后报错变成了variable a not found,想请教一下这又是为什么 ...
删掉这句drop a。这句表示删除变量a。同时不需要删除标量a。而且你上面的sca a=0会直接删除之前的a。所以不需要专门写一句删除标量a的命令。
二维码

扫码加我 拉你入群

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

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

2019-3-11 11:09:42
MissFlorence 发表于 2019-3-10 21:49
非常肥肠感谢您的耐心解答!我按照if在前改了之后报错变成了variable a not found,想请教一下这又是为什么 ...
删掉这句drop a。这句表示删除变量a。同时不需要删除标量a。而且你上面的sca a=0会直接删除之前的a。所以不需要专门写一句删除标量a的命令。
二维码

扫码加我 拉你入群

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

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

2019-3-11 11:09:56
MissFlorence 发表于 2019-3-10 21:49
非常肥肠感谢您的耐心解答!我按照if在前改了之后报错变成了variable a not found,想请教一下这又是为什么 ...
删掉这句drop a。这句表示删除变量a。同时不需要删除标量a。而且你上面的sca a=0会直接删除之前的a。所以不需要专门写一句删除标量a的命令。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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