Есть ли способ условной транспонирования в SAS? - PullRequest
0 голосов
/ 29 апреля 2019

Мне нужно сделать мою транспонированную условной. Поток, который я создаю в EG, позволяет отключить некоторые разделы потока. Это делается с помощью макропеременной (например, & myvariable). Когда & myvariable имеет значение 0, этот участок потока будет отфильтрован, поэтому строки данных не будут проходить через этот раздел.

Это прекрасно работает, но стеки / транспонирование не будут работать, когда нет данных.

Мне нужно, чтобы, когда нет данных для транспонирования, вместо этого он просто создавал столбец с отступами для репликации того, что было бы результатом этой программы.

Это должно быть в базе SAS, я использую Enterprise Guide. Я уже пытался использовать функциональность условной логики в 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 голосов
/ 29 апреля 2019

Вам необходимо использовать макрос логику, а не шаг данных, если у вас есть SAS 9.4+, вы можете использовать% IF /% THEN в открытом коде.Если нет, вам нужно обернуть его в макрос.

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

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