我需要使转置有条件。我在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;
'''
答案 0 :(得分:0)
您需要使用宏逻辑,而不是此处的数据步骤,如果您具有SAS 9.4+,则可以在开放代码中使用%IF /%THEN。如果不这样做,则需要将其包装在宏中。
%if &myVariable = 0 %then %do;
*****sas code*******
%end;
%else %do;
****conditional proc transpose*****
%end;