![](/img/trans.png)
[英]how to create a macro from variable length function? where macro value is another variable length function
[英]How to create a SAS macro variable name from another macro variable and a string?
假设我有一个名为var1
和var1_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.