《SAS编程与数据挖掘商业案例》学习笔记,本次重点:sas宏变量
内容包括:宏变量、宏函数、宏参数、通配函数、字符函数、计算函数、引用函数、宏语句、宏应用
1.宏触发器:
%name-token:是一个宏语句或宏函数
&name-token:是一个宏变量引用
宏变量不依赖于sas数据集,可以在任何一个除数据行以外的地方定义和引用宏变量,一般定义的宏变量为局部变量,除非使用%global,定义宏变量用%let,显示宏变量用%put,调用宏变量用&。
eg:
%let a=xxx;
%put &a;
%put here is &a;
Eg:带引号的文本中引用宏变量
%let var=ddd;
Data a;
X="here is &var.";
run;
如果要正确引用宏变量var值,必须用双引号而不是单引号括住该文本,因为宏处理器只能在双引号中进行替换。
proc sql;
create table temp as
select *
from sashelp.class
where sex like '%M%'
;
quit;
eg:间接引用宏变量
%let mvar=here;
%let x=10;
%put &&mvar.&x ;
当程序读到第一个&时,立刻启动宏触发器,由于存在句点号,故宏处理器会接受两个宏变量&mvar和&x
2.宏函数
libname test ' f:\data_model\book_data\chapt10';
options mstored sasmstore=test;
%macro test / store ;
x=1;
run;
%mend test;
宏存储,会将宏生成到相应目录下面的sasmar文件里面,
调用永久存储的宏:
libname test ' f:\data_model\book_data\chapt10';
options mstored sasmstore=test;
%test;
3.宏参数
宏功能强大之处在于宏参数,定义宏参数有两种方法,
按值创建宏参数:
%macro value(x=,y=);
data test;
x=&x.;
y=&y.;
run;
%mend value;
调用:
%value(x=10,y=20);
按地址创建宏参数
%macro addr(x,y);
data test;
x=&x.;
y=&y.;