Hallo Herr Müller,
ich sehe da kein Problem.
Was genau funktioniert denn bei Ihnen in diesem Ablauf nicht?
Viele Grüße
Michael
Edit: Anmerkung
Wie @FreelanceReinh schon angemerkt hat, kann das mit den Anführungszeichen zu Verwirrung führen.
%let flag = 'irgendwas'; speichert auch die Hochkommas in der Macro-Variablen.
Andererseits führt ein
data ergebnis;
set eingang;
if &flag. eq irgendwas [...]
run;
dazu, dass im Data Step (Program Data Vector) eine neue Variable mit Namen irgendwas angelegt wird.
Daher bietet es sich vielleicht an, das Ganze mit einem "Pseudo-Boolean" abzufangen:
%let flag = 1;
data ergebnis;
set eingang;
if &flag. then a = 2*a;
run;
Achtung: Die Variable flag ist und bleibt ein String, allerdings kann SAS damit umgehen und die Abfrage "if 1 then .." ist wahr, "if 0 then..." wäre falsch.
Wenn man dann die Variable umbenennt wird das recht einfach lesbar, z.B. "if &flag_gesetzt. then ..."