EViews软件的IF语句

2022年5月21日13:44:25EViews软件的IF语句已关闭评论

在许多情况下,用户可能希望只有在某些条件被满足时才执行命令。EViews使用IF/ENDIF语句来表示所设定的条件和需要执行的命令。

IF语句以关键字if开始,后面接条件表达式,接着是关键字then。在条件表达式中,经常使用逻辑运算符and和or,如果需要还可以加上圆括号。若表达式为真,则直到关键字endif之前的所有命令都将被执行;若表达式为假,则所有的命令都被跳过而执行下面的命令。表达式也可以是数值,此时,零值表示假,所有非零的数值都为真。例如,有如下IF语句:

    if  !stand=1 or (!rescale=1 and !redo=1) then
    series  gnpstd=gnp/@sqr(gvar)
    series  constd=cons/@sqr(cvar)
    endif

    if  !a>5 and !a<10  then
    smpl  1950q1  1970q1+!a
    endif

    if  !scale  then
    series  newage=age/!scale
    endif

需要注意的是,命令行的所有缩进都是为了使得程序看起来更清楚,其对程序的执行没有任何的影响。此外,IF语句还可以带有ELSE分句,ELSE分句所包含的命令在条件表达式为假时才被执行。若条件表达式为真,则在关键字else之前的所有命令都被执行;若条件表达式为假,则所有在关键字else和endif之间的命令都会被执行。例如,有如下IF语句:

    if  !scale>0  then
        series  newage=age/!scale
    else
        series  newage=age
    endif

IF语句也可以被用于字符串变量中以及进行IF语句的嵌套。例如,有如下IF语句:

EViews软件的IF语句

当用户在IF语句中使用了序列或者矩阵进行比较时,需要注意的是,表达式中只有当对象中的每个元素之间的比较都为真时,表达式才为真。例如,对于序列x和序列y,有如下IF语句:

    if  x<>y   then
    [一段程序]
    endif

当序列x的任何一个元素和序列y中相应的元素不相等时,条件表达式才为真。对于x和y都是同等维度的向量或者矩阵的情况,也是对x和y的所有元素进行比较。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。