* Example generated by -dataex-. To install: ssc install dataex
clear
input int(date date2)
18257 16112
18206 16208
17996 16476
18197 17355
18170 17204
end
format %d date
format %d date2
我试图在Stata中创建一个循环,生成四个变量(滞后于0个月,3个月,12个月和18个月)。我尝试了这个(下面),我得到一个错误:无效的语法
foreach x inlist (0,3,12,18) & foreach y inlist (0,90,360,540){
gen var`x' = (date > date2 + `y')
}
下面是我成功创建这些变量而不需要循环的方法。如果可以用循环来简化,那就好得多了。
gen var0=(date>date2)
gen var3=(date>date2+90)
gen var12=(date>date2+360)
gen var18=(date>date2+540)
好消息:你只需要对4种可能性进行一次循环,因为0 3 12 18和0 90 360 540是成对的。
foreach x in 0 3 12 18 {
gen var`x' = date > (date2 + 30 * `x')
}
foreach
需要在宏名后面加上in
或of
,因此您的代码在这一点上失败。也没有构式foreach
…& foreach ....
:也许你使用了其他地方的语法,或者只是猜测。