我有一个巨大的数据集,其中一列(变量)具有100个不同的值。我想使用列的这些不同值将这个数据集分成100个较小的部分,并且在循环中也是如此(迭代地)。我被建议使用宏但我无法做到这一点
答案 0 :(得分:1)
仅使用宏变量进行溶解:使用into子句在proc sql中列出数据集和输出语句:
proc sql;
select distinct 'WORK.cars_'|| origin
, 'when ("'|| trim(origin) ||'") output cars_'|| origin
into :cars_data separated by ' '
, :cars_when separated by '; '
from sashelp.cars;
quit;
省略整数标准的双引号。 对于浮点条件,将点转换为下划线。
data &cars_data.;
set sashelp.cars;
select (origin);
&cars_when.;
end;
run;