首页 > 解决方案 > 如何解释这个 SAS 宏?

问题描述

我是一名新的 SAS 学习者。这是一个 SAS 语句。

%if %sysfunc(prxmatch(/^(E0349646)$/i, &SYSUSERID.)) ne 0 %then %do;

我只知道“E0348535”是一个用户ID,但无法理解整个语句。请解释这个 SAS 宏。非常感谢!

标签: sas

解决方案


prxmatch是 SAS 中的 PERL 正则表达式函数。此语句检查用户 ID 名称是否包含E0349646. prxmatch返回匹配发生的第一个位置。如果找不到匹配项,则为 0。

%sysfunc()是一个宏函数,允许您在宏中使用 SAS 函数。由于prxmatch是在宏中使用的 SAS 函数,因此必须用%sysfunc().

最后,ne是另一种说法not equals。综上所述,这就是这句话用简单的英语所做的:

If the user ID contains 'E0349646', then do some stuff.


推荐阅读