SAS与宏

本文详细介绍了SAS宏编程,包括宏程序的结构、宏变量(%let及%global/%local)、宏参数的定义与使用、宏逻辑(条件判断与循环)以及宏函数的应用,特别强调了%sysfunc在处理SAS函数、文件信息和系统信息上的重要性。
摘要由CSDN通过智能技术生成

如何编写宏程序

宏程序的结构

宏程序以%macro+宏程序名开始,%mend为结尾,想要执行宏程序需要调用宏,语法为%+宏程序的名称

%macro print(用户自定义的宏名称);
               proc print data=sashelp.cars;(proc print 命令)
               run;
 %mend ;

嵌套宏—需要使用%mend +宏程序名指定哪个是宏程序结尾

%macro program1;
       statment.......;
       %macro program2;
            statement....;
         %mend program2:
 %mend program1;

宏变量(用&表示)

  • 宏变量使用&表示,在创建过程中使用%let语句,输出值%put语句
% let a = hellow world;
%put &a;
  • %let语句创建宏变量时,不需要加&以说明变量为宏变量
  • %put输出时候,需要在变量前加&以说明变量为宏变量
  • 宏变量不分类型,即使字符型变量也不需要加引号,%let语句会直接读取等号之后,分号之前的文本
  • 空格不会作为宏变量赋值的终止符
%let a=3;
%let b=9;
%put %eval(一个宏函数)(&a+&b)

宏参数

基本参数

宏参数是在宏程序创建时定义的宏变量,紧跟%macro宏程序定义之后,在宏程序被引用的时候,可以将参数一并提交给宏运行,且不同参数值打印不同的数据集

%macro print(data);
         proc print data=&data;
         run;
%mend;
%print(sashelp.cars);
%print(sashelp.baseball);

创建多个参数

%macro print(dara,n);(可以创建多个参数,之间以逗号分隔)
 proc print data=&data(obs=&n);
 run;
 %mend;
 %print(sashelp.cars,3);执行打印之后的前三条记录

宏参数的定义(两种)

  • 参数1,参数2,…的格式(位置参数)定义使用简单,无法处理缺省参数容易出错
    参数1=参数值1,参数2=参数值2…的格式(关键词参数),定义和使用相比位置参数有所不变,对于缺省参数可以正常使用
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LH@313.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值