SAS宏变量间接引用与宏程序使用指南
1. 宏变量的间接引用
1.1 间接引用规则
当多个&或%符号位于名称标记之前时,宏处理器会将两个&&解析为一个&,并重新扫描引用。为了间接引用宏变量,宏处理器会从多个&或%符号编码的位置开始,从左到右扫描并解析标记,直到无法再解析更多的触发符号为止。
1.2 间接引用宏变量示例
假设要编写一个可重复使用的PROC PRINT步骤,用于打印每门课程的信息。可以在TITLE语句中使用间接引用实现。
data _null_;
set certadv.courses;
call symputx(course_code,(course_title));
run;
%let crsid=C002;
proc print data=certadv.schedule noobs label;
where course_code="&crsid";
var location begin_date teacher;
title1 "Schedule for ???";
run;
在上述示例中,由SYMPUTX例程创建的宏变量C002的值为“Structured Query Language”。因此,TITLE语句应引用一个解析为该课程描述的宏变量。虽然看似使用&&crsid可以将宏变量Crsid的值转换为相应的课程描述,但根据间接引用规则,这并非正确的解决方案。正确的解决方案是:
超级会员免费看
订阅专栏 解锁全文
451

被折叠的 条评论
为什么被折叠?



