在宏观中的结肠修饰符

时间:2017-05-19 19:21:57

标签: sas sas-macro

我试图在宏中使用冒号修饰符功能,但它似乎与数据步骤中的工作方式不同。我试图做的一个例子如下所示。

data _null_;
str = "hello";
if str =: "h" then put "y";
else put "n";
run;

if-statement评估数据步骤中的TRUE但是当我在宏语言中应用类似的逻辑时,这似乎不再起作用。

%let str = hello;
%put %eval(&str =: h);

上面的代码现在评估为FALSE。我在这里找不到什么东西,或者这个修饰语在宏语言中是不可用的?我知道我可以使用%eval(%substr(&str,1,1)=h),但我更好奇的是找出:是否有效。

1 个答案:

答案 0 :(得分:2)

不,:不在宏运算符列表中;有关详细信息,请参阅macro language reference

请注意,=:在其他地方也无效,例如PROC SQL。在这些上下文中,eqt是等效的运算符,但在宏语言中也不起作用。