有没有办法在SAS中进行条件转置?

时间:2019-04-29 14:13:21

标签: sas

我需要使转置有条件。我在EG中创建的流允许您关闭流的某些部分。它通过使用宏变量(例如&myvariable)来完成此操作。当&myvariable设置为0时,该流的该部分将被过滤掉,因此有效地,没有数据行通过该部分。

这很好用,但是当没有数据时,堆栈/转置将不起作用。

我需要它,以便当没有数据要进入转置时,它只是创建一个填充列来复制该程序的输出。

它必须在基本SAS中,我正在使用《企业指南》。我已经尝试过在EG中使用条件逻辑功能,但这不合适,因为我需要一个有序列表。

''' some conditional logic?

if &myvariable = 0 then do;
   format padded_col1 $10.;

else do;

'''transpose 
proc transpose data= some_dataset;
    by id;
    id year;
    var income;
run;
'''

1 个答案:

答案 0 :(得分:0)

您需要使用宏逻辑,而不是此处的数据步骤,如果您具有SAS 9.4+,则可以在开放代码中使用%IF /%THEN。如果不这样做,则需要将其包装在宏中。

%if &myVariable = 0 %then %do;
    *****sas code*******
%end;

%else %do;
     ****conditional proc transpose***** 
%end;