SAS宏变量变化

fra*_*rex 6 sas sas-macro

一般来说,我们如何处理需要在宏内部修改宏变量的情况; 例如,假设我有这个宏:

%macro test (arg=); 
array arrayone [&arg];   /* This is ok */
array arraytwo [&arg+1] /* This is not ok. How to make it work? */ 
... 
Run Code Online (Sandbox Code Playgroud)

当我想要%test(3)然后arraytwo需要采用维度4时,我们如何管理这些情况?

Chr*_*s J 5

将其更改为

array arraytwo[%EVAL(&ARG + 1)] ;