这个问题困扰我一天多了,一直很无奈。换了9.1.3和9.2,都有这样的问题。
我的任务是:
一大堆数据库,data(i,j),但是数据库里已知的变量只有两个,一个是日期date,一个是回归因变量比如growth(i,j),剩下的用于回归的自变量除一个以外都是未知的比如growth(x,y),其中x^=i。
我要做的第一步,将所有的自变量全部扩展成lag1-lag5,也就是将growth(x,y)变成变量growth(x,y,t-5),growth(x,y,t-4),growth(x,y,t-3)……growth(x,y,t);
第二步就是将所有的自变量对growth(i,j)回归。
程序如下:
这段程序如果放在几百行的复杂程序里跑时,
第一次,vlist的值输出显示为空
第二次,vlist的值输出显示不为空,但是也不对。
第三次,vlist的值显示正常了。然后程序运行就正常了。
但是如果这段程序变成不用宏%macro processing,单独copy出来到一个新文件里,把i和j分别替换成具体的数值,程序完全能够一次性正常运行。vlist的显示也正确。
说实话这个问题我目前的解决方案感觉就像电视机不好使唤的时候,拍两下就会好一阵子的。
另外我将程序
换成过call symput()的形式,结果还是一样的。
我对问题的感觉是,程序大了或宏变量多了以后,正常的宏运算就会遇到一定的问题,不知道谁有这样的经验?