data aa;
input var $;
datalines;
aa
ab
abc
acbac
;
data test;
set aa;
if _N_ >= 2 then do i=1 to _N_-1;
set aa (rename=(var=var2));
end;
run;
PDV _N_ var i var2
当_N_=1 , PDV里是 1 aa if为假,跳过,end结束完成第一次迭代,开始第二次迭代
_N_=2, PDV 2 ab if 为真 进入循环
_N_=2,PDV 2 ab 1 aa _N_-1=1,do循环结束,i+1
_N_=2, PDV 2 ab 2 aa 第二次迭代结束,开始第三次迭代
_N_=3, PDV 3 abc 2 aa if 为真,进入循环
_N_=3,PDV 3 abc 1 aa i=1
_N_=3, PDV 3 abc 2 ab i=2 _N_-1=2,do 循环结束,i+1
_N_=3, PDV 3 abc 3 ab 第三次迭代结束,开始第四次迭代
所以数据集test前3行应该是 var i var2
aa
ab 2 aa
abc 3 ab 才对啊!
可是实际结果是: var i var2
aa
av 2 aa
abc 3 abc
哪里出错了?请高人指出来,已经烦恼我1天了