sas系统和数据分析sas宏功能简介(编辑修改稿)内容摘要:

电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 4 of 7 %宏名字(参数值)。 例如,我们定义了一个简单通用的宏程序 INVOKE,它有两个参数宏变量 proame 和dsname,用以传递给宏程序所需的过程名和数据集名。 在调用这个宏程序时要将具体的 参数宏变量值给出,其值分别为 Print 和。 程序如下: %MACRO INVOKE( proame, dsname)。 Proc amp。 proame Data=amp。 dsnmae。 Title “amp。 proame of Data Set amp。 dsname”。 Run。 %MEND INVOKE。 %INVOKE(Print , )。 上面这段程序在执行时,将被宏处理器替换成下面这段程序: Proc Print Data=。 Title “Print of Data Set ”。 Run。 2. 具有分支和循环的宏 与 SAS 系统 DATA 步和 PROC 步中可以使用分支和循环语句一样,也能在 %MACRO和 %MEND 语 句 间 , 用 条 件 %IF — %THEN/%ELSE 语 句 和 用 循 环 %DO— %END、 %DO %UNTIL— %END、 %DO %WHILE— %END语句来产生更复杂的宏。 虽然分支和循环的语句格式两者不相同,但两者的使用原理和方法却是相同的。 通常 SAS 宏程序比一般 的 SAS 语言程序要更难理解,主要的难点是宏程序中宏变量的传递和控制。 例如,假设我们已有两个宏 CREATE和 PRINT,宏 CREATE可以从参数宏变量 SETDATA1指定的数据集中创建一个新的数据集 ,宏 PRINT 可以打印一个参数宏变量SETDATA2 指定的数据集。 现在我们要定义一个控制宏 CONTROL,假定有时需要对指定的数据集先运行宏 CREATE,创建一个新的数据集 后,再调用宏 CREATE 打印这个新产生的数据集;有时却只要直接打印指定的数据集。 那么,我们可以用一个 %IF— %THEN 语句来定义宏 CONTROL。 程序如下: %Macro create(setname1)。 Data。 Set amp。 setname1。 If sex=39。 M39。 %Let dsname=。 Run。 d9b23f38bfa1b84ed65e213bfdffcda0 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 5 of 7 %Mend create。 %Macro print(setname2)。 Proc print data=amp。 setname2。 Title Display of Data Set amp。 setname2。 Run。 %Mend print。 %Macro control(getdata,dsname)。 %If %upcase(amp。 getdata)=YES %Then %create(amp。 dsname)。 %print(amp。 dsname)。 %Mend control。 %control(no, )。 %control(yes,)。 当规定参数宏变量。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。