繁体   English   中英

如何从另一个宏变量和字符串创建SAS宏变量名称?

[英]How to create a SAS macro variable name from another macro variable and a string?

假设我有一个名为var1var1_test的数据集。 我正在使用输入var1编写宏。 现在,我正在寻找一种从var1和字符串"_test" var1_test "_test"创建var1_test的方法。 最终,我想在where条件中使用此变量。 我尝试了以下方法:

%macro some_name(var =);

   %let var2 = %sysfunc(catx(&var., '_test'));

   proc sql;
    select ...
        from ...
           where &var2. = 1;
quit;

%mend;

您无需将cat函数与宏语言中的宏变量一起使用。 它们只是打开的文本,因此只要在它们旁边放置更多文本即可自动串联。

%let var2 = &var._test;

您还使用了错误的CAT函数, catx用于在中间放置定界符,因此第一个参数是定界符(因此它不会连接任何东西,因为它只看到一个要连接的东西)。 在参数周围还会有引号,在%sysfunc这是不正确的-在该上下文中,引号被视为实际字符,而不是字符串定界符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM