2.带有字符串变量的FOR循环
当用户希望对一个字符串变量的不同值重复执行操作时,可以在FOR循环中使用字符串变量,使其在字符串列表中取值。字符串变量后面接字符串列表,例如:
for %y gdp gnp ndp nnp
equation {%y}trend.ls %y c {%y}(-1) time
next
上述程序相当于执行如下4条命令:
equation gdptrend.ls gdp c gdp(-1) time
equation gnptrend.ls gnp c gnp(-1) time
equation ndptrend.ls ndp c ndp(-1) time
equation nnptrend.ls nnp c nnp(-1) time
可以在同一个FOR循环语句中使用多个字符串变量,EViews会将这些字符串变量进行分组。例如:

在本例中,字符串变量列表中的元素被分为3组。对于不同的样本区间对和方程名,循环被执行了3次:
smpl 1955q1 1960q4
equation earlyeq.ls sales c orders
smpl 1970q2 1980q3
equation mideq.ls sales c orders
smpl 1975q4 1995q1
equation lateeq.ls sales c orders
用户需要区分这种形式的循环与循环嵌套之间的不同之处。在本例中,所有的字符串变量同时发生改变,而嵌套循环中,内部循环变量发生变化时,外部循环变量是不变的。例如,
!eqno=1
for %1 1955q1 1960q4
for %2 1970q2 1980q3 1975q4
smpl %1 %2
‘form equation name as eq1 through eq6
equation eq{!eqno}.ls sales c orders
!eqno=!eqno+1
next
next
在本例中,有6个方程被估计:在样本区间1955q1~1970q2估计方程eq1,在样本区间1955q1~1980q3估计方程eq2,在样本区间1955q1~1975q4估计方程eq3,在样本区间1960q4~1970q2估计方程eq4,在样本区间1960q4~1980q3估计方程eq5,在样本区间1960q4~1975q4估计方程eq6。
