【发布时间】:2019-09-03 16:36:02
【问题描述】:
我想将变量列表传递给宏以进行进一步分析,但只有最后一个通过。
%macro try(varlist=%str(gender race agegroup));
prroc freq data=test;
table &varlist;
run;
%mend;
结果:
proc freq data=test;
table agegroup;
run;
不如预期:
proc freq data=test;
table gender race agegroup;
run;
【问题讨论】:
-
对我来说似乎一切都很好,只需将 prroc 更改为 proc - 但这不是问题,因为 SAS 会处理它。你是如何执行宏的?我希望是 %try;
-
同意,我觉得不错。你不需要使用 %str。显示您的宏调用,并打开带有 mprint 选项的日志。
-
谢谢大家的回复!实际上,我最初的问题是通过省略组来简化的。处理频率;表 (&var) * 组;跑步;在 &var 周围添加 () 解决了这个问题。再次感谢!