DO循环问题
data a;do i=1 to 5;
x=i+1;
put i=;put x=;
end;
run;
结果:i=1
x=2
i=2
x=3
i=3
x=4
i=4
x=5
i=5
x=6
但是数据集里面是i=6 x=6?
Re: DO循环问题
当循环至i=5时,x=5+1=6,put i=5,x=6至log,此时i=6,因为每次do loop结束前index=index+increment,未定义increment时,默认为1,即i=5+1,然后i=6返回do语句,而此时的i超出了i的取值范围,故循环不运行,直接end,然后run,即Implied output,将i=6,x=6写入数据集。Re: DO循环问题
good point.Re: DO循环问题
简单点说就是在END之后才会运行SAS 数据自带的OUTPUT,才会有i=6 x=6输出到数据集中Re: DO循环问题
你自己在END 之加个OUTPUT 就是你想要的结果了。Re: DO循环问题
你自己在END 之加个OUTPUT 就是你想要的结果了。to be more accurate, adding the output before the RUN; shiyiming 发表于 2012-12-17 21:43
当循环至i=5时,x=5+1=6,put i=5,x=6至log,此时i=6,因为每次do loop结束前index=index+increment,未定义 ...
:loveliness: 类似题目本人在找工笔试中曾经遇见过,本人觉得这种题不是很有意思,因为实际编程时都会在END之前加上output; 或者加上if i=5 then output;
页:
[1]