rdwalk 发表于 2013-4-13 02:43 
建议1看不明白。以前都觉得在这一过程中会被清空,然后再赋值,没有覆盖这一说。??????
data test;
put "-------------------------------------";
put "Before SET statement: " _all_;
set sashelp.class;
put "After SET statement: " _all_;
put "-------------------------------------";
run;
可以根据上面例子所产生的log判断。
第一圈,_N_=1,也就是DATA步刚开始执行的时候,数据集中的变量时会被置空的(Before SET statement: 后显示变量值为空值)。
当_N_>1时,“ put "Before SET statement: " _all_;”语句显示各变量的值还是上一圈SET后变量的值,而在SET语句后,各变量的值才会被新读取的变量值覆盖。