Ich versuche, die Doppelpunkt-Modifikator-Funktionalität in einem Makro zu verwenden, aber es scheint nicht auf die gleiche Weise wie in einem Datenschritt zu arbeiten. Ein Beispiel für das, was ich versuche zu tun, ist unten gezeigt.Doppelpunkt-Modifizierer in Makro
data _null_;
str = "hello";
if str =: "h" then put "y";
else put "n";
run;
Die if-statement
wertet TRUE
im Daten Schritt, aber wenn ich eine ähnliche Logik in der Makrosprache gelten diese wird nicht mehr zu arbeiten.
%let str = hello;
%put %eval(&str =: h);
Der obige Code wird jetzt als FALSE
ausgewertet. Gibt es etwas, das mir hier fehlt, oder ist dieser Modifier in der Makrosprache nicht verfügbar? Ich weiß, ich könnte %eval(%substr(&str,1,1)=h)
verwenden, aber ich bin mehr neugierig, ob die :
funktioniert.
Danke für die Einsicht. Ich bin mir nicht sicher, ob es mit der SAS-Version zu tun hat, aber ich kann '=:' in einer 'WHERE'-Anweisung verwenden. Beispiel: 'proc print data = sashelp.class; wo name =: 'Al'; '. –
@J_Lard Hmm, schätze ich irre mich - korrigiert. Vielen Dank. – Joe