Вам либо нужно использовать макрос, чтобы условно генерировать нужный код.
data dropsomecolumns;
set have;
%if &somemacro =1 %then %do;
drop somecol1 somecol2;
%end;
run;
Или изменить так, чтобы у макропеременной был список отбрасываемых столбцов.
%let drop_columns=somecol1 somecol2;
data dropsomecolumns(drop=&drop_columns);
set have;
run;
Обратите внимание, что оператор drop выдаст предупреждение, если в списке нет переменных, но опция drop = dataset не выдаст это предупреждение.