DATA LOOP;
DO SAMPLE=1 TO 4;
DO I=1 TO 5;
A=0;
B=0;
C=0;
B=B+A*(0.7*A+RANNOR(0));
A=0.7*A+RANNOR(0);
C=C+A**2;
OUTPUT;
END;
RUN;
PROC PRINT DATA=LOOP;
ID SAMPLE;
结果为什么B都等于0呢?期望B会像A和C一样叠加的... 要交的作业,求各位帮忙!!!!【泪
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
pobel 发表于 2012-11-3 18:49 因为4*5共20 次循环中都是先将A,B,C赋值为0, 然后B=B+A*(). 所以B都是0. 是不是应该把A,B,C重置为0放 ...
cravery 发表于 2012-11-3 18:58 嗯对诶,改完后B就不得0了... 有个问题,为什么改之前A和C都不受影响呢?
cravery 发表于 2012-11-3 19:03 如果SAS是一步步往下执行的情况,一旦A不得0,B=B+A*(0.7*A+RANNOR(0))就该有值了对不对?
pobel 发表于 2012-11-3 19:54 因为A=A*0.7 加上一个随机值,所以A不为0。 c也就不为0了