mathczh 发表于 2015-6-21 18:43
您好!我想问个关于_n_和set的问题;
首先我看到的_n_是指data step运行多少次,那么data里面读数据的话 ...
1. _n_和数据集的行数不一定相等。
data step运行读数据集的时候,运行到run后会自动回到data语句。而每次回到data语句,_n_就会加1.与obs的序数无关。例如
data test;
put _n_=;
do i=1 to nobs;
set sashelp.class nobs=nobs;
output;
end;
run;
这个例子,程序的运行只经过data语句两次,所以_n_最大取值为2,与数据集的行数没有关系。
2. 这个只是因为从数据集中读进来的变量是默认retain下来的。