SAS - 根据特定列的不同值迭代地从较大的数据集创建较小的数据集

时间:2015-12-17 07:02:56

标签: sas

我有一个巨大的数据集,其中一列(变量)具有100个不同的值。我想使用列的这些不同值将这个数据集分成100个较小的部分,并且在循环中也是如此(迭代地)。我被建议使用宏但我无法做到这一点

1 个答案:

答案 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;